C文件操作管理

文件操作的套路大致为: 1. 打开文件 fopen 2. 读文件fread 3.写文件fwrite 4.关闭文件 fclose

1.打开文件 fopen

FILE * fopen ( const char * filename, const char * mode );

FILE 标准库中定义好的结构体, 如果打开文件失败, 返回值是NULL

FILE * fp = fopen("D:\a.txt","r");

fopen并没有读取文件内容, 而是根据路径找到磁盘上的文件, 然后在内存中创建一个结构体变量,使用这个结构体描述这个文件(结构体中的内容包括文件的属性等内容)

关于文件打开方式的选取:

文件使用方式                                                                     含义                                                              如果指定的文件不存在

""r”(只读) 为了输入数据,打开一个已经存在的文本文件 出错
“w”(只写) 为了输出数据,打开一个文本文件 建立一个新的文件
“a”(追加) 向文本文件尾添加数据 出错
“rb”(只读) 为了输入数据,打开一个二进制文件 出错
“wb”(只写) 为了输出数据,打开一个二进制文件 建立一个新的文件
“ab”(追加) 向一个二进制文件尾添加数据 出错
“r+”(读写) 为了读和写,打开一个文本文件 出错
“w+”(读写) 为了读和写,建议一个新的文件 建立一个新的文件
“a+”(读写) 打开一个文件,在文件尾进行读写 建立一个新的文件
“rb+”(读写) 为了读和写打开一个二进制文件 出错
“wb+”(读写) 为了读和写,新建一个新的二进制文件 建立一个新的文件
“ab+”(读写) 打开一个二进制文件,在文件尾进行读和写 建立一个新的文件

fp 可称为"文件指针",也可称为"句柄"(handler)-->相当于遥控器的作用.

文件顺序读写:

 

功能 函数名 适用于
字符输入函数 fgetc 所有输入流
字符输出函数 fputc 所有输出流
文本行输入函数 fgets 所有输入流
文本行输出函数 fputs 所有输出流
格式化输入函数 fscanf 所有输入流
格式化输出函数 fprintf 所有输出流
二进制输入 fread 文件
二进制输出 fwrite 文件

 

2. 读文件fread

读取N个字节:

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

其返回值比预期小, 表示读取完毕;

size * count  是读取的字节个数;

3.写文件fwrite

size_t fwrite ( const void * ptr, size_t size, size_t count, FILE * stream );

其返回值小于预期,表示写完毕.

4.关闭文件fclose

int fclose ( FILE * stream );

关闭文件, 释放遥控器; 打开的文件必须要关闭,否则会出现内存泄漏.

fclose(fp);

 

你可能感兴趣的:(C语言)