本文最后更新于2022年02月27日,已超过0天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!
文件要有一个唯一的文件标识,以便用户识别和引用。
C:\VS\temp\file1.dat
C:\VS\temp\
文件路径file1
文件名主干 (命名规则遵循标识符的命名规则).dat
文件后缀 (doc、txt、dat、c、cpp、obj、exeopt、 bmp等)0010011
00010000
1
0
0
0
0
0110001
00110000
00110000
00110000
00110000
0010011
00010000
(与内存存储形式一致)在stdio.h头文件中有以下的文件类型声明:
typedef struct
{
short level; // 缓冲区"满"或"空"的程度
unsigned flags; //文件状态标志
char fd; // 文件描述符
unsigned char hold; // 产如果没有缓冲区,则不读取字符
short bsize; // 缓冲区大小
unsigned char *buffer; // 产数据缓冲区的位置
unsigned char *curp; // 产当前激活指针
unsigned istemp; //产临时文件,指示器
short token; // 用于有效性检查
}FILE;
FILE *fp
stdin
stdout
stderr
FILE *fopen(char *name , char *mode);
char *name
要打开文件的名字char *mode
使用文件的方式(读、写、读写)fopen函数参数中的文件名可以带文件路径,但是文件路径中的“\”必须使用转义字符。
C:\VS\temp\file1.dat
的文件应该写成:fopen("C:\\VS\\temp\\file1.dat","r");
模式 | 描述 |
---|---|
r | 打开一个已有的文本文件,允许读取文件。 |
w | 打开一个文本文件,允许写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会从文件的开头写入内容。如果文件存在,则该会被截断为零长度,重新写入。 |
a | 打开一个文本文件,以追加模式写入文件。如果文件不存在,则会创建一个新文件。在这里,您的程序会在已有的文件内容中追加内容。 |
r+ | 打开一个文本文件,允许读写文件。 |
w+ | 打开一个文本文件,允许读写文件。如果文件已存在,则文件会被截断为零长度,如果文件不存在,则会创建一个新文件。 |
a+ | 打开一个文本文件,允许读写文件。如果文件不存在,则会创建一个新文件。读取会从文件的开头开始,写入则只能是追加模式。 |
"rb"
, "wb"
, "ab"
, "rb+" 或 "r+b"
, "wb+" 或 "w+b"
, "ab+" 或 "a+b"
if ((fp = fopen("file1", "r")) == NULL) {
printf("Can not open this file\n");
exit(0); // 终止正在执行的程序
}
fopen()
不安全,建议使用fopen_s()
的提示fp=fopen("文件路径","模式");
fopen_s(&fp,"文件路劲","模式");
C标准建议用表列出的文件使用方式打开文本文件或二进制文件,但目前使用的一些C编译系统可能不完全提供所有这些功能。 比如:有的C版本只能用 “r",“w",“a" 方式,有的C版本不用 “r+”,“w+”,“a+",而用 “rw”,“wr",“ar” 等。
fclose(文件指针);
fclose (fp);