C语言程序设计 何丽 余平 C语言程序设计第8章新.pptVIP

C语言程序设计 何丽 余平 C语言程序设计第8章新.ppt

  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文档。上传文档
查看更多
谢谢观赏 * 何 丽 余 平?主编 C语言程序设计 程序在运行过程中把数据都保存在变量中,当一个程序运行结束时,保留在变量中的数据就会消失。另外,数据的输入/输出处理都是通过键盘和显示器的,这样的处理方式适合处理数据量比较小的问题,如果涉及的数据量很大,就会受到限制。文件就是解决上述问题的有效途径,它将数据长期保存在磁盘中,当有大量数据需要读入时,可先将要读入的数据存储在磁盘文件中,程序运行时从磁盘文件中读入即可,不需每次运行程序都从键盘输入,从而实现一次输入多次使用。 第8章 文 件 8.1 文件概述及文件类型指针 8.1.1 文件概述 文件(file)是程序设计中重要概念之一,所谓“文件”是数据的集合,通常是指记录在外部介质上数据,一般用磁盘作为数据存放的外部介质。每个文件都有确定的名字,称为文件名。程序只需根据文件名访问文件。 文件可以从不同的角度进行分类: (1)按文件的内容分为源程序、目标文件、数据文件等。 (2)按文件中数据的组织形式,数据文件可分为字符代码文件(也称字符文件或文本文件或正文文件,一般用ASCII码表示)和二进制文件(以二进制数据的形式存放)。 字符代码文件与二进制文件相比,字符代码文件占用字节多,文件的读写都需要进行转换,存取速度相对较慢,但便于浏览;而二进制文件在读写时均不需转换,存取速度相对较快,但文件内容不能浏览。 一般原始数据和最终运行结果用ASCII码文件,以便查看和修改;中间的运行结果多用于另一程序或另一模块的输入数据,为了提高存取速度,一般用二进制文件。 8.1 文件概述及文件类型指针 8.1.1 文件概述 C语言对文件的处理分为两类:一类称为缓冲文件系统;又称为标准文件系统或高层文件系统;另一类称为非缓冲文件系统,又称为低层文件系统。 缓冲文件系统的特点是:对程序中的每一个文件都在内存开辟一个“缓冲区”,它的作用是,从磁盘文件输入的数据先送到“输入缓冲区”中,然后再从缓冲区依次将数据送给接收变量。在向磁盘文件输出数据时,先将程序数据区中变量或表达式的值送到“输出缓冲区”中,待装满缓冲区后才一起输出给磁盘文件。缓冲文件系统自动为文件设置所需的缓冲区,缓冲区的大小随机器而异。 非缓冲区文件系统不由系统自动设置缓冲区,而由用户自己根据需要设置。 这两种文件系统分别对应使用不同的输入/输出函数。 一般把缓冲文件系统输入/输出称为标准输入/输出(标准I/O),非缓冲文件系统的输入/输出称为系统级输入/输出(系统I/O)。 8.1 文件概述及文件类型指针 8.1.2 文件(FILE)类型指针 要调用一个文件,需要有文件当前的读写位置;与该文件对应的内存缓冲区的地址;缓冲区中未被处理的字符数等。缓冲文件系统为每一文件开辟一个“文件信息区”,用来存放以上这些信息。这个“文件信息区”在内存中,是一个结构体变量,这个结构体变量是由系统定义的,用户不必自己再去定义,其形式如下: typedef struct { short level; /*缓冲区“满”或“空”的标志*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer; /*数据缓冲区的位置*/ unsigned ar *curp; /*指针,当前的指向*/ unsigned istemp; /*临时文件,指示器*/ short token; /*用于有效性检查*/ }FILE; 8.1 文件概述及文件类型指针 上面结构体的成员就是用来存放以上信息的数据项,对FILE的定义在stdio.h头文件中由系统事先指定的。 请注意,FILE不是结构体变量名,它是用typedef定义的新类型名,代表它前面花括弧定义的结构体类型。只要程序用到一个文件,系统就为此文件开辟一个如上的结构体变量。有几个文件就开辟几个这样的结构体变量,分别用来存放各个文件的有关信息。这些结构体变量不用变量名来标识,而设置一个指向该结构体变量的指针变量,通过它来访问该结构体变量。 例如:FILE *fp1,*fp2,*fp3; 表示定义了三个指针变量fp1,fp2,fp3。它

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档