1、文件的使用方式
文件使用方式 | 含义 | 如果指定函数不存在 |
“r”(只读) | 为了输入数据打开一个已经存在的文本文件 | 出错 |
“w”(只写) | 为了输出数据,打开一个文本文件 | 建立一个新的文件 |
“a”(追加) | 向文本文件尾添加数据 | 建立一个新的文件 |
“rb”(只读) | 为了输入数据打开一个二进制文件 | 出错 |
“wb”(只写) | 为了输出数据打开一个二进制文件 | 建立一个新的文件 |
“ab”(追加) | 向一个二进制文件尾添加数据 | 出错 |
“r+”(读写) | 为了读和写,打开一个文本文件 | 出错 |
“w+”(读写) | 为了读和写,建立一个新文件 | 建立一个新的文件 |
“a+”(读写) | 打开一个文件,在文件尾进行读写 | 建立一个新的文件 |
“rb+”(读写) | 为了读和写打开一个二进制文件 | 出错 |
“wb+”(读写) | 为了读和写,新建一个新的二进制文件 | 建立一个新的文件 |
“ab+”(读写) | 打开一个二进制文件,在文件尾进行读写 | 建立一个新的文件 |
2、文件的顺序读写
功能 | 函数名 | 适用于 |
字符输入函数 | fgetc | 所有输入流 |
字符输出函数 | fputc | 所有输出流 |
文本行输入函数 | fgets | 所有输入流 |
文本行输出函数 | fputs | 所有输出流 |
格式化输入函数 | fscanf | 所有输入流 |
格式化输出函数 | fprintf | 所有输出流 |
二进制输入 | fread | 文件 |
二进制输出 | fwrite | 文件 |
fputc和fgetc的用法:
fputs和fgets的用法:
fprintf和fscanf的用法:
fwrite和fread的用法:
其实,C语言程序只要运行起来就默认打开了三个流:
stdin - 标准输入流 - 键盘
stdout - 标准输出流 - 屏幕
stderr - 标准输出流 - 屏幕
基本用法如下:
sprintf和sscanf的用法:
3、文件的随机读写
(1)调整文件指针的位置 - fseek函数
SEEK_CUR代表从头开始找,SEEK_END代表从尾开始找。
(2)返回文件指针相对于起始位置的偏移量 - ftell函数
(3)让文件指针回到起始位置 - rewind函数
4、文件读取结束的判定
fgetc函数在读取结束的时候,会返回EOF,正常读取的时候,返回的是读取到的字符的ASCLL码值。
fgets函数在读取结束的时候,会返回BULL,正常读取时,返回存放字符串的空间起始位置。
fread函数在读取的时候,返回的是实际取到的完整元素的个数,如果发现读取到的完整的元素个数小于指定的元素个数,这就是最后一次读取了。
被错误使用的feof函数:
牢记:在文件的读取过程中,不能用feof函数的返回值直接用来判断文件的是否结束。而是用于当文件读取结束的时候,判断是读取失败结束,还是遇到文件尾结束。
具体用法如下: