我们为什么要使用文件?
在我们在写程序时,我们输入的数据在程序运行结束后将不会被记录保存,那么这时我们可以使用C语言中的文件操作将我们所需要的数据永久的保存在磁盘上,做到数据持久化,以便于下次我们不必再重复输入数据,可以直接在文件中读取数据。
目录
一、什么是文件
二、文件名
三、文件的打开和关闭
四、文件的顺序读写
五、文件的随机读写
六、文件读取结束的判定
七、文件缓冲区
一、什么是文件
存放在磁盘上的文件就是文件
但是在程序设计中我们一般将文件分为两类:程序文件和数据文件(按文件的功能分类)。
1.程序文件
包括源程序文件(后缀为.c),目标文件(Windows环境后缀为.obj),可执行文件(Windows环境后缀为.exe)。
2.数据文件
文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件。
本博客主要讲述的是数据文件的读写操作。
在没有文件操作的C语言终端程序中,数据的输入和输出都是以终端为对象的,即从终端的键盘输入数据,运行结果在屏幕上显示。但是在有文件操作的程序中,我们可以将终端的键盘输入的数据保存在磁盘中,或者将磁盘中的文件数据都取到程序内存中使用。
二、文件名
一个文件需要有唯一的文件标识,以便用户的识别和引用。
为了方便起见文件标识常被称为文件名。
文件名包含三个部分:文件路径+文件名主干+文件后缀
例如:D:\study\编程\C语言\学习\文件操作\test.c
> \之前的内容都是表示文件所在的路径,比如此test.c文件在D盘的study目录下的:编程目录下的:C语言目录下的:学习目录下的:文件操作目录下的位置。
> 此文件的文件名主干是test
> 此文件的文件名后缀是c
三、文件的打开和关闭
在我们读写文件时需要先建立一个文件信息区来记录所要使用文件的各种数据(如文件的名字、文件状态及文件所在的当前位置等),而在C语言中记录这些状态的类型为文件指针:
1.文件指针
缓冲文件系统中,关键的概念是"“文件类型指针",简称“文件指针"。
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统声明的,取名FILE。
在vs2022当中FILE是被这样定义的: