文本文件和二进制文件的处理.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

ziyouzizai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档