文件操作

基础部分

文件操作——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就是文件末尾)”) 说通俗点就是改变光标的位置,一般写入之后,光标都会处于最后的位置

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

在数据结构课设中用到的文件流操作

思路:

  1. 在构建时通过航班结构体写入两个作为模板,然后在使用时用一个按照模板已经写好的文件让其被读取写入(已完善)
  2. 在设置的管理员模式中创建新航班时添加一个文件写入,使得数据固化,固化只针对航班而不对其它增删查改数据进行固化(已完善)
  3. 在查找时的输出写入到文件中,手动模拟一个航班日志信息,可以供查找(已完善,就是简单的添加一些格式化函数即可)