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