写完「C语言」单链表/双向链表的建立/遍历/插入/删除 后,如何将内存中的链表信息及时的保存到文件中,又能够及时的从文件中读取出来进行处理,便需要用到”文件“的相关知识点进行文件的输入、输出。
其实,就算不懂得链表,也完全可以学习”文件“相关知识点,但在此之前最好有”指针“基础。
本篇文章整理自《C语言程序设计教程--人民邮电出版社》第十二章——文件,以作文件探讨。
一、数据流与文件概念
二、文件的打开与关闭
三、文件的顺序读写
四、文件的随机读写
五、出错检查
六、低级I/O函数与标准I/O函数
一、数据流与文件概念
1.数据流
数据的输入与输出都必须通过计算机的外围设备,不同的外围设备对于数据输入与输出的格式和方法有不同的处理方式,这就增加了编写文件访问程序的困难程度,而且很容易产生外围设备彼此不兼容的问题。数据流(Data Stream)用来解决这个问题。
数据流将整个文件内的数据看作一串连续的字符(字节),而没有记录的限制。
数据流借助文件指针的移动来访问数据,文件指针目前所指的位置即是要处理的数据,经过访问后文件指针会自动向后移动。
每个数据文件后面都有一个文件结束符号(EOF),用来告知该数据文件到此结束,若文件指针指到EOF便表示数据已访问完毕。
2.文件
“文件”是指存放在外部存储介质(可以是磁盘、光盘、磁带等)上的数据集合。操作系统对外部介质上的数据是以文件形式进行管理的。当打开一个文件或者创建一个新文件时,一个数据流和一个外部文件(可能是一个物理设备)相关联。
C语言支持的是流式文件,即前面提到的数据流,它把文件看作一个字节序列,以字节为单位进行访问,没有记录界限,即数据的输入和输出的开始和结束仅受程序控制,而不受物理符号(如回车换行符)控制。
可以从不同角度对文件进行分类
(1)根据文件依附的性质——普通文件和设备文件。
(2)根据文件的组织形式——顺序读写文件和随机读写文件。
(3)根据文件的存储形式——ASCII码文件和二进制文件。
ASCII码文件和二进制文件的主要区别:
(1)存储形式:ASCII文件将该数据类型转换为可在屏幕上显示的形式存储,二进制文件是按该数据类型在内存中的存