一.为什么使用文件?
如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数的,如果要将数据进⾏持久化的保存,我们可以使⽤⽂件。
二.什么是文件?
文件分为程序文件和数据文件。
程序文件包括源程序⽂件(后缀为.c),⽬标⽂件(windows环境后缀为.obj),可执⾏程序(windows
环境后缀为.exe)。
数据文件中的内容不一定是程序,也可能是运行时读写的数据。
2.2文件名
⼀个⽂件要有⼀个唯⼀的⽂件标识,以便⽤⼾识别和引⽤。
⽂件名包含3部分:⽂件路径+⽂件名主⼲+⽂件后缀
例如: c:\code\test.txt
为了⽅便起⻅,⽂件标识常被称为⽂件名。
三.二进制文件和文本文件
数据在内存中以二进制的形式存储,如果不加转换的输出到外存的文件中,就是二进制文件。
如果在外存上以ascll码存储的文件就是文本文件。
四.文件的打开和关闭
4.1流和标准流
流是抽象出的概念,我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输入输出操作各不相同,为了方便程序员对各种设备进行方便操作而产生的概念。
4.2标准流
stdin标准输入流,大多数环境中从键盘输入,例如scanf
stdout标准输出流,大多数环境输出至显示屏,例如printf。
stderr标准错误流。
他们三个的类型都是file*,通常称为文件指针。
4.2文件的打开和关闭
c规定使用fopen函数来打开文件,fclose函数来关闭文件。

五.文件的顺序读写
5.1scanf,fscanf,sscanf
scanf是从键盘中读取格式化数据,fscanf是从输入流中读取标准化数据,并且多出了file*,sscanf是从字符串中读取数据。

六.文件的随机读写
6.1fseek
根据文件指针的位置和偏移量来定位文件指针(文件内容的光标)。

file*为文件地址,long int为偏移量,origin为起始位置。
6.2ftell
返回文件指针相对于起始位置的偏移量。

6.3rewind
让文件指针的位置回到文件的起始位置。
