内容正文:
第11章
文件
·文件一般指存储在计算机外部介质上的一组数据的集合。
11.1文件的概念
11.2格式化数据文件操作
11.3
字符数据文件操作
1l.4 fread()与fwrite()函数
11.5文件位置定位与错误处理函数
11.6应用实例一一大奖赛评分系统
n.1文件的概念
文件:存储在外部介质上数据的集合,是操作系统数据管理的
单位
代数隧序的k动。
程序与数据分离
2按枸同一数据文件中的数据
数据共享
3、。能泉搜存行的结琳据裁微振长和不定长
·流式文件:由一个个字符(字节)数据顺序组成
。按存储介质:
。普通文件:存储介质文件(磁盘、磁带等)
·设备文件:非存储介质(键盘、显示器、打印机等)
。按数据的组织形式:
·文本文件:ASCII文件,每个字节存放一个字符的ASCII码
·二进制文件:数据按其在内存中的存储形式原样存放
11.1.2C语
输出文件缓冲区
程序数据区
前出
磁盘
。C语言对文件的
输出
。缓冲文件系贫
输入文件毁冲区
。在缓冲文件
输入
区的专用内
输入
·从内存向磁盘
图10-1
爱中文件输入输出示意图
;
·从磁盘读文件时必须先把一批数据读到缓冲区(充满缓冲区),然后再从缓冲
区将数据逐个送到用户数据区。
●
非缓冲文件系统
。
在非缓冲文件系统中,文件的处理不自动开辟确定大小的缓冲区,而是由程序
设定缓冲区。
一般用缓冲文件系统进行的输入/输出称为高级磁盘输入/输出。用非缓冲文件系
统进行的输入/输出称为低级(低层)输入/输出。
11.1.3文件的问方式
。(1)文件操作过程。文件操作需要包括以下几个过程:
·1)文件指针定义。
·2)文件打开。
·3)文件处理,执行以下两种操作中的一种:读文件和写文件。
·4)文件关闭。
(2)文件指针定义
C语言规定对文件的所有操作都必须用文件指针建立与打开文件的联
系,之后才能进行读写操作。
文件指针定义格式为:
FLE*z指针变量
。例如,FILE*p:
故卜
lI *fo.
函数名称
功能说明
fopen()
打开一个文件
fclose()
关闭一个文件
fputc()
输出一个字符到文件
fgetc()
从文件中读取一个字符
11.2.1打开文件函数fopen0
表11-2文件振作英型定义
方式
意义
W
对已经存在的ASCI文件进行读操作
we
对A$C江文件进行写染作。若文件不存在,则自动建立:若存在,则原来的内容被覆盖?
23
向ASCI文件尾添加数据
b
对已经存在的二进制文件进行读操作?
wbe
对二进制文件进行写操作,若文件不存在,则自动建立:若存在,则原来的内容被覆盖
符数组(
abe
向二进制文件尾添加数据
:须加双引
”要用两
r+e
对已经存在的ASCI文件进行读或写操作?
w+g
对ASCI文件进行读或写操作。若文件不存在,则自动建立:若已经存在,则原来的内容被覆盖?
)+这6个
atp
为读写打开一个A$CI文件,文件必须存在。文件指针开始时在文件尾?
tb+e
对已经存在的二进制文件进行读或写操作和
wb+e
对已经存在的二进制文件进行读或写操作。若文件不存在,则自己建立:若已经存在,其内容被
覆盖和
b-2
为读写打开一个二进制文件,此文件必须存在
注意,在实际应用中,常用下面的方法打开一个文件:
char filenamen="d:\\tc\datallci.dat":
如果不能实现打2if(fp=fopen(filename,opstyle)=NULL)
(其值
在头文件stdio.h中被定
printf("
不能打开文件n")
exit(1);
者金,皮备韵头使用前者打开文件时。读写位置指针指向文件头:使用后
52在C语言中,把文态保存到AsCⅡ文件中时,
系统自动将只车换红符转搀盛一个摻
在从ASCⅡ文件中读写数据时,将换行符自动转换成回车和换行两
使角
二进制支件时,内存中的数据形式与数据文件中的形式完全一样,就不用再进行转
(6)
用“r+
“w+”或“+”打开的文件可以用来输入和输出数据。使用“+”方式时,该文
件应该
以便能计算机中输众数据。用“±式
则新建立
向此文
后可以从更读写数籍。用“+”方式行并的文件,原采的文件不被
除,读写昼登指针移羯到父件,司养加数据也可以读出数幕。
(7)在程序开始运行时,系统自动打开3个标准文件,并分别定义了文件指针:
·12标准的输入文件
指的文祥稀入数据,
就是款据般为健在》。如项序年指定要从sd血所
。2)标准的输出文件
stdout:
指向终端输出(一般为显示器)
3)
标准的错误文件
stderr:指向终端标准错误偷出(一般为显示器)。
11.2.2关闭文件函数fclose(0
。函数格式:
int fclose(FILE *fp);
。函数功能: