文件操作
基础部分
文件操作----stdlib库函数
FILE *fp ---定义文件指针
fopen("参数:路径(绝对相对都可))","参数:操作模式" ---函数打开文件
如果想直接按照文件名打开,需要让文件和源文件demo.c文件在同一目录下
fclose(fp) 文件打开之后需要记得关闭
p.s. 注意打开之后文件指针会出现在首个字母前方,随着操作的进行逐渐移动
模式:
-
r 模式:读文件 ch = fgetc(pf);
-
w 模式:写文件 ch = fputc('2', pf); 执行时不要与读操作一同进行否则可能出现无法理解的bug
写入的时候是覆盖,而不是往后推,后推是记事本自带实现的功能
文件的结束标志是一个EOF 循环条件 while (!feof(pf))
进阶部分
对结构体等有格式的操作
使用读写函数
- 读 fread("参数:地址","参数:该板块的大小","参数:这样的板块的数量","参数:文件指针")
均不需要带引号

-
写 fwrite("","","","")和fread同理
-
文件定位 fseek("参数:文件指针","参数:偏移量","参数:特定含义(SEEK_SET文件开头,END就是文件末尾)") 说通俗点就是改变光标的位置,一般写入之后,光标都会处于最后的位置

想要从最后偏移,需要使用负数,偏移量是有正负之分的

在数据结构课设中用到的文件流操作
思路:
-
在构建时通过航班结构体写入两个作为模板,然后在使用时用一个按照模板已经写好的文件让其被读取写入(已完善)
-
在设置的管理员模式中创建新航班时添加一个文件写入,使得数据固化,固化只针对航班而不对其它增删查改数据进行固化(已完善)
-
在查找时的输出写入到文件中,手动模拟一个航班日志信息,可以供查找(已完善,就是简单的添加一些格式化函数即可)
文末:这里仅对我在课设中涉及到有用的文件操作以简洁的方式进行了记录,并不完善,如有未看到的文件流操作请多见谅,若文章中出现纰漏之处,请各位大佬指正