在 C语言程序设计中,数据的输入和输出是不可缺少的部分。在前面的章节中,输入设备是键盘,程序通过与键盘交互的方式(常用scanf( )函数)输入原始数据;输出设备则指向显示器,程序的运行结果通常都输出在显示屏幕上(常用printf( )函数),而且程序的运行结果会随着程序运行的结束而消失。
但在现实工作和生活中需要计算机处理的问题,往往数据量都非常大,而且经常需要长时间保存原始数据和运行结果数据。那么,要如何保存和使用这些数据呢?
我们通常是用文件来保存和处理这些数据的,文件通常都保存在计算机的外部存储器中。数据以文件的形式存放在存储器后,能够长久保存,还可以被其他程序调用,从而实现数据的共享,而且不受计算机内存空间的限制,其容量可以很大,因而使用文件可以保存和处理大量的数据。
C语言将文件看作是由字符排列组成的一个序列,输入输出时也按字符的出现顺序依次进行,可以将其想象成是由字符组成的字符河流。C语言中文件类型有 ASCII 码文件(文本文件)和二进制文件两种。C语言在处理这两种文件时,都将其看成是字符流,按字节顺序进行处理,因而 C 文件常被称为“流式文件”。
计算机要处理文件,首先要把它从外部存储器调入到内存当中。这个将文件调入到内存的过程,我们通常称为打开文件。调入内存的文件通常占用一块连续的内存空间,我们用一个文件指针指向这块内存空间的起始位置,从而指定该文件,对文件中数据的处理就可以用这个指针操作来完成。C语言对文件的操作都是通过函数完成的。
C语言文件操作的基本步骤如下:
C语言提供了一批用于文件操作的标准函数,都包含在标准库文件 stdio.h 中。