- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
文本文件和二进制文件的处理.pdf
第 12 章
文本文件和二进制文件的处理
本章将会深入研究标准输入、标准输出和程序控制的文本文件的使用。另外还会介绍二进制文
件,并比较文本文件和二进制文件的优缺点。
12.1 输入/输出文件:回顾与进一步研究
C可以处理两种文件:文本文件和二进制文件。本节将学习文本文件,二进制文件会在本章后面
介绍。所有利用编辑器或文字处理器产生的文件都是文本文件。文本文件是在辅助存储器(例如磁
盘)中保存的一个已命名的字符集合。文本文件没有固定的大小。为标记文本文件的结束,计算机
会在文件的最后一个字符之后放置一个特殊的文件结束符,标记为eof。在用一个编辑器程序产生
文本文件时,按下Return或Enter键会在文件中放置一个换行符(C语言中用 \n表示)。
文本文件 (text file )在辅助存储器中保存的一个已命名的字符集合。
下面的两行表示一个文本文件,它是由两行字母、空白符,以及标点符号 .和 !组成的。
This is a text file!newline
It has two lines.newlineeof
每一行都以换行符结束,eof符号跟在文件的最后一个换行符后面。为了方便检查文件内容,所列出
的文件中的每一行(通过newline)都为单独的一行,尽管在实际的磁盘文件中并不是这样。磁
盘文件由一系列字符组成,占据了磁盘中一个磁道的连续存储空间,如下所示:
This is a text file!newlineIt has two lines.newlineeof
第二行的第一个字符(I)直接跟在第一行的最后一个字符(换行符)之后。因为所有的文本输入和
输出数据实际上都是字符代码的连续流,所以有时将源数据或目的数据称为输入流或输出流。这两
个通用术语可用于文件、终端键盘和屏幕,以及其他输入数据源和目的输出数据。
输入流/输出流 (input stream/output stream)表示文本输入(或输出)数据的字符代码的连
续流。 624
12.1.1 键盘和屏幕作为文本流
在交互编程中,C将系统名称与终端键盘和屏幕关联在一起。名称stdin代表键盘的输入流。“标
准”输出流stdout和“错误”输出流stderr是两个与屏幕相关的系统流。这三个流可以看作是文本
文件,因为它们的每个组成部分都是字符。
stdin 指向键盘输入流的系统文件指针。
stdout,stderr 指向屏幕输出流的系统文件指针。
通常在键盘上一次输入一行数据,并键入回车键指明一行数据的结束。按下这两个键中的一个
就会在系统流stdin中插入换行符。通常在交互编程中,使用一个标记值指示数据的结束,而不是试
图在系统流stdin中放置eof符号;不过eof符号也是可以用的。单个键不能代表eof符号,因此大多
376 第 12 章 文本文件和二进制文件的处理
数系统使用控制键加一个字母的方法。(例如,在运行UNIX操作系统的计算机上,可以使用组合键
Ctr+D 。
在一个交互程序中将字符写入stdout或stderr流会在屏幕上显示出来。前面已经学习了printf
函数将字符写到屏幕上的用法。在printf格式字符串中使用 \n会输出一个换行符,并使光标移到
屏幕下一行的起始处。
12.1.2 换行与 EOF
可以看出,C对特殊的换行符的处理与eof符号不同,尽管它们具有类似的目的。newline标
记一行文本的结束,而eof标记整个文件的结束。可以将newline当作任何其他字符一样处理:
它可以作为带有%c的scanf的输入,可以与\n比较是否相等,还可以作为printf的输出。
然而特殊的eof符号的输入被认为是一个失败的操作,输入函数会将与标识符EOF相关的负整数
作为它的返回值。因为该特殊返回值给调用函数一个信息:在输入文件中已没有数据,所以,如果
程序忽略了警告值,并且继续试图从该流中获得输入的话,那么支持C运行的系统没有责任去提供一
条出错消息。下面是另一个输入循环的例子,循环退出条件是出现EOF返回值:
for (status=scanf(%d,num);
st
您可能关注的文档
最近下载
- 广州市萝岗区凤凰山隧道工程TJ-04合同段 路基高边坡施工“12.29”坍塌 较大事故调查报告.doc VIP
- 新解读《GB_T 18319 - 2019纺织品 光蓄热性能试验方法》最新解读.pptx VIP
- T∕CABEE 030-2022民用建筑直流配电设计标准.pdf VIP
- 高中政治大单元教学设计案例.docx VIP
- 人音版音乐四年级下册 第4课童年的音乐 白桦林好地方 课件(共22张PPT)(含音频+视频).pptx VIP
- 2025年中国方便粉丝市场调查研究报告.docx
- 畜牧养殖业项目融资方案.docx VIP
- 煤矿职业健康操作规程.pdf VIP
- 中建给排水设计控制要点技术指南(94页).pdf VIP
- 2025年青海省中考生物地理合卷试题(含答案解析).docx
文档评论(0)