文件读写
- 打开文件fopen(“文件路径”,”打开模式”)
- 绝对路径:windows称为x:\x\x\x\xxx; linux系统 称为 /根目录下;
- 相对路径:当前的工作目录(程序运行的时候的目录)
- 默认:程序在哪里运行的,目录就在哪里;
- 调用操作系统的API来修改当前的工作目录;
- “hello.txt”,”temp/hello.txt”,当前目录(./)上一级目录(../)
- 参照物就是当前工作目录;
- struct FILE* 结构对象,文件句柄,–>标识当前打开的这个文件;
- struct FILE* fopen(路径,打开模式);
- 相对路径;默认当前是程序启动的路径,调试器也可以配置工作目录;
- ./就是工作目录所在的位置
- 当前目录下面的文件夹的文件
- 当前工作目录上一层的文件夹的文件
- 打开的模式:”rb” “rb+”,”wb”,”wb+”,”ab”,”ab+” -
文件位置
读的模式下来处理
- -文件的位置,类似于文本光标的位置,当我们读数据的时候,从当前文件位置(光标位置开始读取),往后读多少字节,读完后文件位置自动往后移;
- 参考点:开始的位置 SEEK_SET 0,当前的位置SEEK_CUR 1,文件的结尾 SEEK_END 2
- 默认打开文件的时候,当前位置是在开始的地方
- 我们可以改变这个文件的位置
- fessk函数(FILE* F,偏移多少,参考位置);
- 移动到文件开始的位置;
- 读取文件的数据的时候都是从这个位置开始读的;
- ftell返回当前文件的位置,返回的是一个整数
计算文件的大小
文件 – 读
fread来读取文件
- 准备好内存,准备读取多少数据,
- 假设要把文件的内容一次性读入到我们的内存里面;
- step1;准备好内存,
- step2:读取多少字节 elem_size * elem_count个字节数
文件— 写
- step1 打开文件,wb,如果文件不存在则创建出来;
- step2 原有的内容发生了变化,wb原有的内容全部删除,ab 追加的模式
- strp3 把内存数据写入到文件;
- step 关闭文件
追加数据
不会删除原来的文件内容 直接在原来的文件后面追加数据
文件缓冲
- fflush,用户强制操作系统刷新缓冲到我们的磁盘,同步数据;
标准输入输出
- stdou 它是一个文件对象,标准输出文件;
- printf 就是把数据写入到这个标准的输出文件里面;
- stdout 是程序运行的时候都会有的一个文件;