第14章 文件.docVIP

  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文档。上传文档
查看更多
第14章 文件

第14章 文 件 文件是程序设计中一个非常重要的概念,任何一种计算机语言都具有较强的文件操作能力。本章在介绍文件(程序文件、数据文件)的基本概念后,较详细地讨论C语言对数据文件的存取方式及操作方法。 14.1 C文件概述 14.1.1 C文件的基本概念 什么是文件?众所周知,计算机操作系统的重要组成部分之一,就是文件管理系统。这里说的文件,一般是指存放在外部介质上(如磁盘)的一些信息集合,或者干脆就是计算机的某些外设,如终端键盘是输入文件,显示屏和打印机是输出文件。操作系统是以文件为单位对数据进行管理的,也就是说,如果想找存放于外部介质上的数据,必须按文件名找到所指的文件,然后再从该文件中读取数据。要向外部介质上存储数据,也必须先建立一个文件(以文件名标识),才能向它输出数据。 程序运行时,常常需要将一些数据(运行的最终结果或中间结果)输出到磁盘上存储起来,这就是磁盘文件。以后需要时再从磁盘文件中输入到计算机内存。 什么情况下需要使用文件,为什么必须在程序设计中使用文件?我们可以从如下三个方面来回答。 第一,一些程序,如C语言的编译程序,要能对使用它的所有用户的每一个C语言源程序进行编译,而不是只对某一个具体的C语言源程序进行编译。为此,只能以文件形式把每一个要被编译的C语言源程序提供给编译程序,编译程序也只能以文件的形式把编译的结果(目标程序、清单文件)交付给用户。这就是说,程序是以文件方式进行组织存储的。 第二,一个程序装入内存,启动并执行完成之后,就要让它退出内存,以便使另外的程序可以使用这片内存区域。如果我们把程序以文件的形式保存在外存中,那么将来要执行某个程序时,只要把它装入内存加以执行就可以了。这样可以大大节省手工输入的时间。与此相联系的,我们也可以用文件形式保存程序运行得到的某些中间结果或最后结果,以备下次使用。这就是说,数据也可以以文件的方式进行组织存储。文件的使用可以给用户带来许多方便,并提高上机效率。 第三,一个程序可能用到数量很大的原始数据,或者产生大量的中间结果,以至于我们没有办法把它们全部装入内存,这时,就必须把它们保存在文件中。可以说,使用文件成了摆脱这种困境的最佳手段。 从上面三点说明可以看出,文件的使用是非常重要的。在某些情况下,不用文件就很难解决遇到的困难。 我们从用户的角度来看文件在外存中的存储形式,即文件的逻辑结构可分为流式文件和记录式文件两种: (1) 流式文件。构成文件的基本单位是字符(字节),流式文件是有序字符(字节)的集合。其长度为该文件所包含的字符(字节)个数,所以又称字符(字节)流文件。流式文件无结构,且管理简单,用户可以方便地对其进行操作。例如源程序、目标代码等文件属于流式文件。 (2) 记录式文件。构成文件的基本单位是记录,记录式文件是一组有序记录的集合。记录(record)是一个具有特定长度的信息单位,它包含一个记录键和其他属性。记录式文件可以把记录按各种不同的方式排列,以便用户对文件中的记录进行修改、追加、查找和管理。例如:BASIC、PASCAL等语言是以记录的方式处理数据文件。 C语言是以流式文件的方式处理数据文件的。与许多高级语言(如BASIC、PASCAL等)不同,C语言的数据文件并不是由记录组成的,而是以数据流形式组成的,即把数据看做是一连串的字符(字节)而不考虑记录的界限。由于流式文件的特点,C语言允许对数据文件存取一个字符(而BASIC、PASCAL等语言是以记录为单位存取的),这就增加了数据文件处理的灵活性。 根据数据的组织形式,C语言中数据文件可分为ASCII文件和二进制文件,ASCII文件又称为文本(text)文件。 (1) 文本文件是一串ASCII字符,它的每一个字节存放一个ASCII代码,代表一个字符。若一个磁盘文件中数据是以字符流的形式存放的,则可以用DOS的TYPE命令将内容显示 在显示器上,或用编辑软件进行编辑。 (2) 二进制文件是将数据以其二进制形式存放的,二进制流存储的数据与其内存存储形式完全相同。例如,一个整数10000,以二进制形式存放占2个字节,而用文本形式存放则需5个字节(因为它由5个字符组成)。 由上可见,用ASCII码形式存储与字符一一对应,一个字节代表一个字符,因而便于对字符进行逐个处理,也便于输出字符,但一般占存储空间较多,而且要花费转换时间(二进制形式与ASCII码的转换)。用二进制形式存储数据,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出数据的字符形式。一般中间结果数据需要暂时保存在外存上,以后又需要输入到内存,常用二进制文件保存。 14.1.2 文件的处理方法 现在C语言对所使用的磁盘文件的处理方法有两种,一种称为缓冲文件系统,另一种称为非缓冲文件系统。 (1) 缓

文档评论(0)

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

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

1亿VIP精品文档

相关文档