C语言学习笔记---文件操作 fopen()函数 和 fclose()函数

x33g5p2x  于2021-11-01 转载在 其他  
字(1.1k)|赞(0)|评价(0)|浏览(479)

fopen()函数

在C语言中fopen()函数用来打开文件。该函数声明在stdio.h中。它的第一个参数是待打开文件的名称,更确切的说是一个包含文件名的字符串地址。第二个参数是一个字符串,指定待打开文件的模式。

下面表格中列出了常见的文件操作模式:

  当程序成功打开文件后,fopen()函数将返回一个文件指针,该文件指针的类型是指向FILE的指针,FILE是一个定义在stdio.h中的派生类型。也就是一个结构体。定义如下:

struct _iobuf {
    char *_ptr; 		//文件输入的下一个位置
    int _cnt; 		//当前缓冲区的相对位置
    char *_base; 	//指基础位置(即是文件的其始位置)
    int _flag; 		//文件标志
    int _file; 		//文件的有效性验证
    int _charbuf; 	//检查缓冲区状况,如果无缓冲区则不读取
    int _bufsiz; 	//缓冲区大小
    char *_tmpfname; //临时文件名

        };
typedef struct _iobuf FILE;

通过typedef定义了 文件类型 的别名: “FILE”。它里面包含了当前打开文件的描述信息。
在不同的系统中FILE结构体里面的内容也是不一样的,所以不用关注FILE结构体中的具体内容,只要会使用就行了。

fclose()函数

当文件打开后需要关闭时,要调用fclose()函数就行文件的关闭,它只需要一个参数,就是使用fopen()函数打开文件后返回的FILE类型指针。如果关闭成功返回0,如果关闭失败则返回EOF;

下面通过一个例子来演示这两个函数的用法:

int main()
{
	FILE *fp;
	int ret;

	/* 打开文件 */
	fp = fopen("123.txt","r");
	if(fp==NULL)
		puts("打开失败!");
	else
		puts("打开成功!");

	/* 关闭文件 */
	ret = fclose(fp);
	if(ret == 0)
		puts("关闭成功!");
	else
		puts("关闭失败!");

	system("pause");
	return 0;
}

使用fopen()函数打开一个记事本,然后在使用fclose()函数关闭记事本。

   当文件存在时打开和关闭都成功,记事本如果和和当前C文件在一个目录中,在填写文件名的时候就不需要带路径。如果要打开的记事本和当前C文件不在同一个目录中,输入文件名的时候需要输入文件的全路径。如果打开的文件路径不存在,则打开和关闭文件都会失败。

相关文章