- 1、本文档共35页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第10章文件操作
10.1文件概述
10.2文件的打开与文件
10.3文件的顺序读写操作
10.4文件的随机读写操作
10.5文件操作时的出错检测
10.6文件应用举例;10.1文件概述
10.1.1文件的概念
文件(File)是存储在外部介质上一组相关信息的集合。每个文件都有一个名字,称为文件名。一批数据是以文件的形式存放在外部介质(如磁盘)上的,而操作系统以文件为单位对数据进行管理。
磁盘既可作为输入设备,也可作为输出设备,因此,有磁盘输入文件和磁盘输出文件。操作系统把每一个与主机相联的输入/输出设备都当作文件来管理,称为标准输入/输出文件。;C语言把文件看作一个字节序列,即由一连串的字节组成,称为流(Stream),以字节为单位访问,输入/输出数据流的开始和结束仅受程序控制而不受物理符号(如回车换行符)控制,把这种文件称为流式文件。换句话说,C语言中的文件并不是由记录(Record)组成的。;根据文件数据的组织形式,C语言的文件可分为ASCII文件和二进制文件。在ASCII文件中,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符。但一般占用存储空间较多,而且要花费时间转换(二进制形式与ASCII码间的转换)。用二进制形式输出数值,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。一般中间结果数据需要暂时保存在外存以后又需要读入到内存的,常用二进制文件保存。;10.1.2C语言的文件系统
从C语言对文件的处理方法来看,可以将文件分为两类:缓冲文件系统和非缓冲文件系统。缓冲文件系统,称为标准文件系统。
缓冲文件系统的特点是:系统自动地在内存中为每一个正在读写的文件开辟一个缓冲区,利用缓冲区完成文件读写操作。将数据写入文件或从文件中读出数据的过程如图11-1所示。;
10.1.3文件类型指针
对于每个正在使用的文件都要说明一个FILE类型的结构体变量,该结构体变量用于存放文件的有关信息。在C语言中,无论是一般磁盘文件还是设备文件,都要通过文件结构的数据集合进行输入/输出处理。在缓冲文件系统中,每个被使用的文件都在内存中开辟一个区域,用来存放文件的有关信息。这些信息保存在一个结构体类型的变量中。该结构体类型是在stdio.h头文件中由系统定义的,取名为FILE。;有几个文件就开辟几个这样的结构体变量,分别用来存放各个文件的有关信息。这些结构体变量不用变量名来标识,而通过指向结构体类型的指针变量去访问,这就是文件类型指针。
在C程序中,凡是要对已打开的文件进行操作,都要通过指向该文件的FILE结构体的指针。为此,需要在程序中定义指向FILE结构体的指针变量。文件类型指针变量定义的格式为:
FILE*文件类型指针变量名;
其中,FILE是文件结构体的类型名,标识结构体类型。;10.2文件的打开与文件
10.2.1打开文件
打开文件需调用fopen函数。它的一般调用格式为:
FILE*fp;
fp=fopen(文件说明符,操作方式);
其中,文件说明符指定打开的文件名;操作方式指定打开文件的读写方式,该参数是字符串,必须小写。文件操作方式用具有特定含义的符号表示。函数返回一指向文件块的首地址,以后对文件的操作就利用这个文件块。如果打开文件失败,则返回NULL。;文件操作方式;10.2.2关闭文件
用fclose函数关闭文件,其调用格式为:
fclose(文件类型指针);
fclose函数用于关闭已打开的文件,切断缓冲区与该文件的联系,并释放文件类型指针。正常关闭返回值为0,否则返回一个非0值,表示关闭出错。;10.3文件的顺序读写操作
10.3.1文件的字符输入/输出函数
1.字符输入函数fgetc()
字符变量=fgetc(文件类型指针);
fgetc函数从指定的文件中读取一个字符,即从文件类型指针所指向的文件(该文件必须是以读或读写方式打开的)中读取一个字符返回,读取的字符赋给字符变量。若读取字符时文件已经结束或出错,fgetc函数返回文件结束标记EOF,此时EOF的值为-1。;2.字符输出函数fputc()
该函数的调用格式为:
fputc(字符,文件类型指针);
fputc函数将一个字符输出到指定文件中。即将字符输出到文件类型指针所指向的文件。若输出操作成功,该函数返回输出的字符,否则返回EOF。;3.feof函数
系统给出feof函数来判断文件是否真正结束,一般格式为:
feof(文件类型指针);
该函数可以判断文件类型指针是否已指向文件结束处,若是,则返回非0值(真),否则,返回0(假)。从键盘读入数据,按【Ctrl+Z】键(显示器显示^Z),即输入文件结束符。feof函数可用于二进制文件和ASCII码
您可能关注的文档
- 第9章恶意软件.pptx
- 第9章-自然语言处理.pptx
- 第10课时整理与复习(2).pdf
- 第10章 多智能体协调、合作和协商.pptx
- 第10章 Python图形界面编程.pptx
- XXXX年XX月XX日某市教体局关于“校园餐”突出问题专项整治工作情况的汇报.docx
- 中小学校园餐整治工作调度会上的讲话.docx
- 某县委书记年度民主生活会“四个带头”个人对照检查发言.docx
- 某区政法委副书记年度民主生活会“四个带头”对照检查发言材料4.docx
- 某区政法委书记年度述职述廉述德报告.docx
- 某县纪委监委开展“校园餐”突出问题专项整治工作汇报22.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告66.docx
- 某县委常委、宣传部部长年度民主生活会“四个带头”个人对照检查发言材料.docx
- XX县委领导班子年度述职述廉报告3.docx
- 某县纪委关于校园餐问题整治工作落实情况的报告.docx
- 中小学校园食品安全与膳食经费管理专项整治工作自查报告22.docx
- 某县税务局党委领导班子年度民主生活会“四个带头”对照检查材料.docx
- 某县委书记在县委常委班子年度民主生活会专题学习会上的讲话.docx
- 某县纪委校园餐问题整治工作落实情况的报告.docx
- 某区委副书记、区长年度民主生活会对照检查材料.docx
文档评论(0)