1
C/C ++程序设计
1.2.8.1 8.1 打开和关闭文件

8.1 打开和关闭文件

文件操作步骤是:第一步,打开文件;第二步,文件操作(读文件、写文件、文件查找);第三步,关闭文件。操作文件需要使用文件指针。文件的指针不是指向一段内存空间,而是指向描述有关这个文件的相关信息的一个文件信息结构体,在C语言中所有对文件的操作都通过文件指针完成。声明一个文件指针后,就可以使用它进行文件的打开、读写和关闭等操作了。

声明文件指针的语法格式如下:

FILE*文件指针名;

功能:声明一个文件指针。

8.1.1 打开文件

打开文件就是通过建立文件指针,把程序中对文件的操作与磁盘上实际的数据文件联系起来。打开文件的函数是fopen函数,格式如下:

img306

功能:

以指定的打开方式打开一个指定的文件,并使文件指针fp指向该文件。如果文件打开成功,fopen函数返回一个指向FILE类型的指针值(非0值);如果文件不能打开,则返回空指针值NULL。

参数说明:

fopen函数包含两个参数,调用时都必须用双引号引起来。第一个参数“文件名”表示要打开的磁盘文件的文件名,如果该参数包含文件的路径,则按该路径读取文件,如果省略了文件路径,则默认为当前目录;第二个参数表示的是文件的打开方式,如表8-1所示。

表8-1 文件打开方式

img307

由于某些原因,可能导致文件打开失败,所以需要检查打开操作是否成功,只有打开成功才能继续执行文件其他操作。

检查打开操作代码如下:

img308

如果函数的返回值为NULL,说明文件打开失败,显示文件无法打开的信息,结束文件操作;如果文件打开成功,则文件指针fp为非0值,执行后续文件操作指令。

8.1.2 关闭文件

当文件的读或写操作完成后,应及时关闭文件,断开文件指针和文件的联系。同时系统会把文件缓冲区中的数据保存到磁盘文件中,防止因未关闭文件时结束程序运行,导致文件数据丢失。关闭文件的函数是fclose函数,其一般使用格式如下:

fclose(文件指针);

8.1.3 文件结束检测

feof函数用于检测文件是否结束,即是否到达文件尾部。feof函数既适用于二进制文件,也适用于文本文件。使用格式如下:

feof(文件指针);

若已读到文件末尾,feof函数返回值为1;否则,返回值为0。

在读文件操作时,需要检测是否读到文件的结尾处,防止读取文件失败,读取检测文件代码如下:

img309