C语言程序设计(第二版) 教学课件 作者 978 7 302 32355 6 kj 第12章文件.pptVIP

C语言程序设计(第二版) 教学课件 作者 978 7 302 32355 6 kj 第12章文件.ppt

  1. 1、本文档共56页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第12章 文件 本章概述 文件操作是C语言程序设计中的重要组成部分。很多应用问题中会用到文件操作。 本章讨论C语言程序设计中的文件操作。包括文件的打开与关闭、文件的定位与检测、文件的读写所使用的各种函数和编程方法。 本章的学习目标 本章教学目的:理解文件的概念,掌握用来进行文件的打开、关闭、定位、检测、读写操作的方法。 本章教学重点:文件的读写 本章教学难点:文件的定位与检测 主要内容 12.1 文件概述 12.2 文件的打开与关闭 12.3 文件的定位和检测 12.4 文件的读写 12.5 程序设计举例 12.1 文件概述 12.1.1 文件 文件是程序设计中的一个重要概念,所谓“文件”是指存储在外部介质(如磁盘)上的一组相关数据的集合,为了便于定位这组数据,通常要为它取一个名称,即文件名。操作系统就是以文件为单位对数据进行管理的,如果想找存储在外部介质上的数据,必须按文件名找到存放该数据的文件,然后再从文件中读取数据。 从用户的角度来看,文件可以分普通文件和设备文件。 普通文件是驻留在外部介质上的有序数据集,它可以是源文件、目标文件、可执行程序,也可是一组待输入的原始数据,或者是一组输出结果。前者通常称为程序文件,后者则可称为数据文件。 设备文件是指与主机相联的各种外部设备,如显示器、键盘等,对于操作系统而言,每一个与主机相联的输入/输出设备都是一个文件,其输入输出等同于文件的读和写。 例如,通常将显示器定义为标准输出文件,将键盘定义为标准输入文件。我们前面使用的printf()、putchar()等C函数就是输出到标准输出文件(即显示器),scanf()、getchar()等C函数就是从标准输入文件(即键盘)输入数据。 12.1 文件概述 12.1.2 数据文件的存储形式 从文件的编码方式来看,文件可以分为ASCII码文件和二进制文件两种。 ASCII码文件也称为文本文件,这种文件在磁盘中存储时每个字符对应一个字节,存放的是该字符的ASCII码值。 二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 ASCII码文件内容可以在屏幕上按字符显示,例如C源程序文件就是ASCII文件,在windows中可以直接用记事本打开阅读。由于ASCII码文件是按字符显示,因此能读懂其内容,而二进制文件虽然有时也能显示在屏幕上,但其内容却无法直接读懂。 图12.1中0011001000110100分别是字符’1’、’2’、’3’、’4’的ASCII码值的二进制形式。 存储内容用ASCII码形式输出时,其字节与字符一一对应,一个字节代表一个字符,便于对字符进行逐个处理,也便于输出字符,但一般占用的存储空间较多,而且要花费转换时间。 用二进制形式输出,可以节省外存空间和转换时间,但一个字节与字符无一一对应关系,不能直接输出字符形式。一般中间结果数据需要暂时保存在外存上,常用二进制文件保存。 因为C文件是一串字节流或二进制流,所以C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制,即在输出时不会自动增加回车换行符以作为记录结束的标志,输入时不以回车换行符作为记录的间隔。我们把这种文件称作“流式文件”。C语言允许对文件存取一个字符,有很强的灵活性。 12.1.3 标准文件与非标准文件 在老版本的C(如Unix下的C)中对文件的处理方式有两种: 一种是缓冲文件系统——又称标准文件系统, 另一种是非缓冲文件系统——又称非标准文件系统。 所谓“缓冲文件系统”是指系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区,从内存向磁盘输出数据时必须先送到内存中的缓冲区,缓冲区装满数据后,再一起送到磁盘中去。同样,从磁盘向内存中读入数据时,则一次从磁盘文件中将一批数据读入到缓冲区,然后再从缓冲区逐个地将数据送到程序数据区(给程序中的变量),如图12.2所示。缓冲区的大小随C的版本不同而不同,一般为512字节。 所谓“非缓冲文件系统”是指系统不会自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。 C语言中没有专门的输入输出语句,对文件的读写都是用库函数来实现的,ANSI规定了输入输出函数,用它们对文件进行读写。 本章只介绍ANSI C规定的缓冲文件系统,即标准文件系统。 12.1.4 文件类型指针 在缓冲文件系统中有一个关键概念是“文件类型指针”,每一个存在的文件都在内存中开辟一个区域,用来存放文件的有关信息(如文件的名称、文件状态、文件当前位置等),这些信息保存在一个结构体变量中,该结构体由系统声明,取名为FILE。

您可能关注的文档

文档评论(0)

带头大哥 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档