前几章是从键盘获取数据,在屏幕上显示数据。数据无法长时间保存,因此我们可以通过使用文件操作,用文件保存键盘输入和屏幕输出的数据,将数据以文件的形式存放在光盘、磁盘等外存储器上,可以达到重复使用、永久保存数据的目的。
C语言文件有两种类型:文本文件(也称ASCII)和二进制文件。其差别在于存储数据的方式不同。
在二进制文件中,数值型数据是以二进制形式存储的;而文本文件中,则是将数值型数据的每一位数字作为一个字符以其ASCII码形式存储的。因此,文本文件中的每一位数字都单独占用一个字节的存储空间。而二进制文件则是把整个数字作为一个二进制数来存储的,并非数值的每一位数字都占用单独的存储空间。
C语言有缓冲型和非缓冲型两种文件系统。缓冲型文件系统是指系统自动在内存中为每一个正在使用的文件开辟一个缓冲区,作为程序和文件之间数据减缓的中介,缓冲文件系统利用文件指针标识文件。非缓冲文件系统是不会自动设置文件缓冲区的,缓冲区必须由程序员自行设定。非缓冲文件系统没有文件指针,它使用称为文件号的整数来标识文件,缓冲型文件系统中的文件操作,也称为高级文件操作,高级文件操作函数是ANSI C定义的可移植的文件操作函数,具有跨平台和可移植的能力,可解决大多数文件操作问题。因此接下来主要介绍高级文件操作函数。