使用文件——将数据直接存放在电脑的硬盘上,数据持久化
什么是文件
磁盘上的文件是文件
程序设计中一般有两种:程序文件、数据文件
程序文件:源程序文件(.c)目标文件(.obj)可执行程序(.exe)
数据文件:文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的程序
本章讨论数据文件
文件名:文件路径+文件名主干+文件后缀
文件类型
文本文件:在外存上以ASSCII码的形式存储,则需要在存储前转换
二进制文件:数据在内存中以二进制的形式存储,不加转换的输出到外存
文件指针
文件类型指针
每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件相关的信息
这些信息是保存在一个结构体变量中的,该结构体类型是有系统声明的,取名为FILE
FILE* pf;//文件指针变量
定义pf是一个指向FILE类型数据的指针变量,可以使pf指向某个文件的文件信息区(是一个结构体变量),通过该文件信息区中的信息就能够访问该文件。即通过文件指针变量能够找到与它关联的文件。
文件的打开和关闭
FILE * fopen ( const char * filename, const char * mode );
int fclose ( FILE * stream );
文件的顺序读写
文件的随机读写
fseek
根据文件指针的位置和偏移量来定位文件指针
int fseek ( FILE * stream, long int offset, int origin );
ftell
返回文件指针相对于起始位置的偏移量
long int ftell ( FILE * stream );
fwind
让文件指针的位置回到文件的起始位置
void rewind ( FILE * stream );
文本文件和二进制文件
根据数据的组织形式,数据文件被称为文本文件或二进制文件
二进制形式存储-二进制文件
ASCII码形式存储-文本文件
文件读取结束的判定
feof
应用于当文件结束的时候,判定是读取失败结束,还是遇到文件尾结束
文件缓冲区
文件是指存储在外部存储介质上的、由文件名标识的一组相关信息的集合。由于CPU 与 I/O 设备间速度不匹配。为了缓和 CPU 与 I/O 设备之间速度不匹配矛盾。文件缓冲区是用以暂时存放读写期间的文件数据而在内存区预留的一定空间。使用文件缓冲区可减少读取硬盘的次数。