文件读写

c/c++ c语言文件读写


  • 打开文件fopen(“文件路径”,”打开模式”)
  • 绝对路径:windows称为x:\x\x\x\xxx; linux系统 称为 /根目录下;
  • 相对路径:当前的工作目录(程序运行的时候的目录)
  • 默认:程序在哪里运行的,目录就在哪里;
  • 调用操作系统的API来修改当前的工作目录;
  • “hello.txt”,”temp/hello.txt”,当前目录(./)上一级目录(../)
  • 参照物就是当前工作目录;
    • c/c++ c语言文件读写
  • struct FILE* 结构对象,文件句柄,–>标识当前打开的这个文件;
  • struct FILE* fopen(路径,打开模式);
    • c/c++ c语言文件读写
  • 相对路径;默认当前是程序启动的路径,调试器也可以配置工作目录;
    • c/c++ c语言文件读写
  • ./就是工作目录所在的位置
    • c/c++ c语言文件读写
  • 当前目录下面的文件夹的文件
    • c/c++ c语言文件读写
    • c/c++ c语言文件读写
  • 当前工作目录上一层的文件夹的文件
    • c/c++ c语言文件读写
    • c/c++ c语言文件读写
  • 打开的模式:”rb” “rb+”,”wb”,”wb+”,”ab”,”ab+”
  • -

文件位置

c/c++ c语言文件读写


读的模式下来处理

  • -文件的位置,类似于文本光标的位置,当我们读数据的时候,从当前文件位置(光标位置开始读取),往后读多少字节,读完后文件位置自动往后移;
  • 参考点:开始的位置 SEEK_SET 0,当前的位置SEEK_CUR 1,文件的结尾 SEEK_END 2
  • 默认打开文件的时候,当前位置是在开始的地方
  • 我们可以改变这个文件的位置
  • fessk函数(FILE* F,偏移多少,参考位置);
  • 移动到文件开始的位置;
  • c/c++ c语言文件读写
  • 读取文件的数据的时候都是从这个位置开始读的;
  • ftell返回当前文件的位置,返回的是一个整数
  • c/c++ c语言文件读写

计算文件的大小

  • c/c++ c语言文件读写

文件 – 读

fread来读取文件

  • 准备好内存,准备读取多少数据,
  • 假设要把文件的内容一次性读入到我们的内存里面;
  • step1;准备好内存,
    • c/c++ c语言文件读写
  • step2:读取多少字节 elem_size * elem_count个字节数
    • c/c++ c语言文件读写
    • -

文件— 写

  • step1 打开文件,wb,如果文件不存在则创建出来;
    • c/c++ c语言文件读写
  • step2 原有的内容发生了变化,wb原有的内容全部删除,ab 追加的模式
  • strp3 把内存数据写入到文件;
    • c/c++ c语言文件读写
    • c/c++ c语言文件读写
  • step 关闭文件
    • c/c++ c语言文件读写
    • -

追加数据
c/c++ c语言文件读写


不会删除原来的文件内容 直接在原来的文件后面追加数据

c/c++ c语言文件读写

文件缓冲

c/c++ c语言文件读写


  • fflush,用户强制操作系统刷新缓冲到我们的磁盘,同步数据;
    • c/c++ c语言文件读写
    • -

标准输入输出

c/c++ c语言文件读写


  • stdou 它是一个文件对象,标准输出文件;
  • printf 就是把数据写入到这个标准的输出文件里面;
  • stdout 是程序运行的时候都会有的一个文件;
  • c/c++ c语言文件读写
  • -

c/c++ c语言文件读写

相关文章: