文件的基本知识
为什么需要外部文件?
·程序运行时数据已存在内存,或从键盘输入,结果输出到显示器。该处理方式是临时性的,程序运行结束数据就丢失。
·除显示器和键盘外,输入输出设备还包括磁盘、光盘、磁带等存储设备,程序运行数据和运行结果可来自和存储于这些设备。
文件的概念
文件的概念
文件:存储在外部介质上(如磁盘等)的数据集合。如,程序文件是程序代码的有序集合;数据文件是一组数据的有序集合。
文件名:一个唯一的文件标识,以便用户识别和引用。文件名由三个部分组成:
(1) 文件路径:文件在外部存储设备中的位置。
(2) 主文件名:用于识别文件,命名规则为标识符规则。
(3) 文件扩展名:用于区分文件的类型,各种类型文件通常有约定的扩展名。
C语言常用两类文件:
程序文件,包括:
源程序文件(扩展名是.c);
目标文件(扩展名是.obj);
可执行文件(扩展名是.exe)
数据文件:程序运行时读写的数据
(如:学生档案、商品交易等)
文件的数据存储
文件的数据存储
根据数据在文件存储的组织形式,数据文件可以分为“文本文件”和“二进制文件”。
数据在内存中是二进制形式存储的,如果不进行转换,直接将内存中数据的二进制形式直接存储到文件中,就是二进制文件。
如果将内存中的数据以ASCII码形式存储到文件中,就是文本文件,也称为ASCII文件。
例:整数12345以ASCII码形式存储到文件中,就是把字符串“12345”存储到文件中,在磁盘上占用5个字节;
以二进制形式存储到文件中,是直接把其内存中的形式存储到文件中,占用4个字节(部分C编译器占用2个字节)。
文件缓冲区
文件缓冲区
概念:系统自动地在内存中为程序中每一个正在使用的文件开辟一个“文件缓冲区”。
目的:协调高速的内存设备与低速的外部存储设备之间的配合,提高文件读写效率。
处理过程:(1) 输出时数据先到文件缓冲区,缓冲区满后再整批送出。(2)读入时,先一次性读取一批数据到文件缓冲区,再逐个输入到数据区变量。
文件类型指针
对文件读写时,需为文件在内存中开辟一个区域,用来存放文件相关信息(如文件名、读写状态等),存储在一个结构体类型变量中,C语言为该结构体类型命名为FILE,定义在stdio.h中:
typedef struct _iobuf
{
char* _ptr;
int _cnt;
char* _base;
int _flag;
int _file;
int _charbuf;
int _bufsiz;
char* _tmpfname;
} FILE;
使用: FILE *fp;