文件操作
1使用原因:将数据持久化保存
2认识
<1分类
(1程序文件 .c .obj .exe
(2数据文件 .txt
(1)文本文件:ASCII码值
(2)二进制文件:不加转化
<2文件名
3操作
1>流
打开流->读写->关闭流
标准流
2>文件指针
FILE*pf指向文件信息区
3> 文件打开与关闭
1打开文件 FILEfopen(const charfilename,const char*mode)
打开成功返回有效指针
失败 NULL
2读写文件
顺序读写函数
(1)写文件
1)fputc(‘a’,pf);
fputc(‘b’,pf);
int i=0;
for(i=‘a’;i<=‘z’;i++)
fputc(i,pf);
2)fputs
3)fprintf
适用所有输出流
fprintf(pf,“%d %c %d”,a,b,c);
将内容打印到pf指向的文件中
4)fwrite
正确返回非负数
错误返回EOF
(2)读文件
1)fgetc(FILE*stream)
返回值为int
2)fgets
成功返回 *st
失败返回NULL
3)fscanf
fscanf(pf,“%s”,s.name);
4)fread
从文件中读取count个大小为size数据放到ptr中
(3)补充
sscanf 将str中的数据转化为格式化的数据存放在tmp中
sprintf将格式化的数据写到字符串str中
3关闭文件 fcolse
在当前路径下不需交代绝对路径
不在当前路径下
1)上一路径.\..\..\ 相对路径
2) 用绝对路径
4>文件的随机读写
offsetof–计算结构体成员相较于起始位置的偏移量
fseek(pf,4,SEEK_SET);
rewind 将文件指针重新定位到文件的起始位置
5>文件结束的判定
feof
文件结束原因
1遇到文件末尾
2遇到错误了
fgetc 是否为EOF
fgets 是否NULL
fread返回值是否小于要读取的个数
返回值为int,遇到文件末尾返回非0,否则为零
6>文件缓冲区