前言:当程序结束时,所有运行过程中输入输出的数据都会随着程序结束一并小时,为了保留这些数据供下次使用,就需要用到文件了;(事实上大多是都是使用的数据库,更加便捷)
一、文件的打开和关闭;
打开:fpoen;
//打开成功会返回一个FILE类型的指针,可以通过它对该文件进行相关操作;
//打开失败会返回NULL空指针;需要判断是否打开成功,否则会很危险;
//文件名需要是在程序文件夹内的,也可以是其他地方的(但是这种需要有详细的路径)eg:
关闭:fclose;
格式:
FILE*pf=fopen("文件名",“打开方式”);
if(pf==NULL){printf(“%s”),strerror(errno);return;}//打印错误信息幷结束程序
.........(相关操作);
fclose(pf);//关闭;
二、文件的打开方式:
(截图来自比特就业课)
1.读就是从文件中拿出数据;写就是存入文件数据
2.“”包含的是只读就不能更改文件内容,只能引出,不能存入(更改);只写就只能存入,不能引出
三、文件的顺序读写
1.这几种函数两两为一对,写入用了其中一对时读出时必须用相应的另一对;
2.读和写的顺序是固定的;读完第一个才继续读第二个(写也是一样)
使用eg:
fwrite(“要写入的数据的地址”,单个数据的大小,数据的个数,pf);
//pf就是打开文件时返回的FILE类型指针;
fread(“要存入数据的地址”,单个数据的大小,数据的个数,pf)
*其他函数详细可以查阅MSDN或者网站cplusplus.com.
四、文件的随机读写
当然文件的读写顺序不是一定不可以改变的;
fseek(pf,参考位置,偏移量):改变文件指针pf的指向
参考位置:必须写下面三个:起始位置,中间位置,末尾位置;不同的参考位置写的偏移量不一样
在参考位置左边偏移量为负数,右边则为正数
ftell(pf)返回文件指针相当于起始位置的偏移量
fwind:让文件指针的位置回到起始位置;
*五.sscanf和sprintf
(嵌入式接口等会经常用到,现阶段基本用不上,以后再学【狗头】)
sprintf:将格式化的数据转化为字符串数据
sscanf:反之
标准输入是指键盘等外设输入的信息
六、文本文件和二进制文件
以二进制形式存储和读取的是二进制文件;
以ASCII码值形式存储的是文本文件;(将数据拆分为一个个字符,以码值存储)
七、文件读取结束的判定
文件不再读取时有可能是数据读取完成或者遇到某种错误
1.万能判断方式:ferror(pf);原因是遇到错误时为真
feor(pf);原因是读取完成时为真
2.其他方法:
文本文件:
fgets(char*str,数量,pf)//读取失败或者读取完成都会返回EOF
二进制文件:
fread(“要存入数据的地址”,单个数据的大小,数据的个数,pf)
//会返回成功读取的文件个数,可以和(数据的个数比较)
八、文件的缓冲区
相当于小孩问问题,攒够了n个问题再问;用于提升系统处理数据效率,不过多赘述;
end:感谢比特鹏哥的教导,讲的真的很好,学到了很多实用的知识;
今天结课了,有点小忧伤【狗头】