在c语言中,在处理文件之前,必须首先打开文件。 使用的函数是fopen函数,用于打开文件,获取该文件的文件指针,并起到便于后续操作的作用。 函数原型为: file * fopen (const char * filename,constchar*mode );
可以看到,此函数需要两个字符串类型的参数。 第一个是文件名,是要操作的文件对象。 第二个是打开的方式。 这里的打开方式只是以哪个模式打开文件。 包括以文本模式打开、以二进制格式打开、读、写、添加等。 具体类型如下表所示,可根据情况使用。
参数的作用
r以只读方式打开文件。 此文件必须存在。
r以读/写方式打开文件。 此文件必须存在。
rb以读/写方式打开二进制文件,只允许读取/写入数据。
rt以读/写方式打开文本文件,允许读和写。
w打开只读文件,如果文件存在,则当文件长度为零时,该文件的内容将消失; 如果文件不存在,请创建它。
w打开可读写文件,如果文件存在,则文件长度为零,该文件的内容消失。 如果文件不存在,请创建它。
a用附件的方法只写入文件。 如果文件不存在,将创建该文件。 如果文件存在,则写入的数据将添加到文件的末尾。 这意味着文件的原始内容将被保留(EOF符号将被保留)。
a附加可读写的文件并打开。 如果文件不存在,则会创建该文件。 如果文件存在,则写入的数据将添加到文件的末尾。 也就是说,文件的原始内容将被保留。 不保留EOF符号。
wb以只读方式打开或创建二进制文件,并且只允许写入数据。
wb以读写方式打开二进制文件或新建二进制文件,允许读写。
wt可以通过读/写方式打开或创建新的文本文件,以允许读和写。
at以读/写方式打开文本文件,可以在读取或文本末尾添加数据。
ab以读/写方式打开二进制文件,可以在读取或文件末尾添加数据。
函数的返回值表示打开成功后的文件指针。 FILE类型的格式是用于以后使用的结构类型,如果打开失败,则返回NULL
FILE结构类型不可用,但您可以看到它的定义如下: 类型定义结构{
Int级别; /*fill/emptylevelofbuffer*/
未指定标志; /*Filestatusflags*/
charfd;/*文件描述符* /
unsignedcharhold; /*Ungetccharifnobuffer*/
intbsize; /*Buffersize*/
unsignedchar_FAR*buffer;/*数据传输缓冲器* /
unsignedchar_FAR*curp; /*Currentactivepointer*/
unsignedistemp; /*Temporaryfileindicator*/
短令牌; /*Usedforvaliditychecking*/
(}文件; /*ThisistheFILEobject*/
例如,如果当前想要打开d驱动器根目录中的abc.dat并读取该文件的数据,则返回FILE*fp;
FP=fopen(d:ABC.dat ',' r ' ) )
//之后用fp指针开始读取文件
值得说明的是
1 .这个文件的目录是绝对路径,所以这样写。 如果不写驱动器号,例如abc.dat,则表示相对路径,表示与本程序相同的目录下。
2 .传球中只有一个反斜杠,这里打了两个。 这是因为在c语言字符串中,反斜杠被视为转义字符,因此需要两个反斜杠来表示一个。
3.r也就是说,如果以只读方式打开文件,则以后不允许再写数据。 否则会出错。 请一定要一致。