第12章文件讲解.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十二章 文件 ;12.1 C文件概述;12.1.2 数据文件的存储形式? 从文件的编码方式来看,文件可以分为ASCII码文件和二进制文件两种。ASCII码文件也称为文本文件,这种文件在磁盘中存储时每个字符对应一个字节,存放的是该字符的ASCII码值。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 ASCII码文件内容可以在屏幕上按字符显示,例如源程序文件就是ASCII文件,在windows中可以直接用记事本打开阅读, 能读懂其内容,而二进制文件虽然有时也能显示在屏幕上,但其内容却无法直接读懂。例如,数字1234的几种存储形式如图12.1。?;12.1.2 数据文件的存储形式? 存储内容用ASCII码形式输出时,其字节与字符一一对应,一个字节代表一个字符,便于对字符进行逐个处理,也便于输出字符,但一般占用的存储空间较多,而且要花费转换时间。用二进制形式输出,可以节省外存空间和转换时间,但一个字节与字符无一一对应关系,不能直接输出字符形式。一般中间结果数据需要暂时保存在外存上,常用二进制文件保存。 因为C文件是一串字节流或二进制流,所以C系统在处理这些文件时,并不区分类型,都看成是字符流,按字节进行处理。输入输出字符流的开始和结束只由程序控制而不受物理符号(如回车符)的控制,即在输出时不会自动增加回车换行符以作为记录结束的标志,输入时不以回车换行符作为记录的间隔。我们把这种文件称作“流式文件”。C语言允许对文件存取一个字符,有很强的灵活性。 ;12.1.3 标准文件与非标准文件 根据对文件的处理方式的不同,文件可分为: 缓冲文件系统:也被称为标准文件系统,系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。如图12.2所示。缓冲区的大小随C的版本不同而不同,一般为512字节。 ;非缓冲文件系统:也被称非标准文件系统,是指系统不会自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。 C语言中没有专门的输入输出语句,对文件的读写都是用库函数来实现的,ANSI规定了输入输出函数,用它们对文件进行读写。 本章只介绍ANSI C规定的缓冲文件系统???即标准文件系统。 ;12.1.4 文件类型指针 在缓冲文件系统中有一个关键概念是“文件类型指针”,每一个存在的文件都在内存中开辟一个区域,用来存放文件的有关信息(如文件的名称、文件状态、文件当前位置等),这些信息保存在一个结构体变量中,该结构体由系统声明,取名为FILE。 Turbo C在stdio.h文件中有以下的类型声明: typedef struct {short level; /*缓冲区“满”或“空”的程度*/ unsigned flags; /*文件状态标志*/ char fd; /*文件描述符*/ unsigned char hold; /*如无缓冲区不读取字符*/ short bsize; /*缓冲区的大小*/ unsigned char *buffer; /*数据缓冲区的位置*/ unsigned char *curp; /*指针,当前的指向*/ unsigned istemp; /*临时文件,指示器*/ short token; /*用于有效性检查*/ }FILE;; 有了FILE类型之后,可以用它来定义若干个FILE类型的变量,以便存放文件的信息。 可以定义文件型指针变量,定义文件类型指针变量的一般格式为: FILE *指针变量标识符; 如: FILE *fp ; fp是一个指向FILE类型结构体的指针变量。可以使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。即通过文件指针变量能够找到与它相关的文件。 若有n个文件,一般应设n个指针变量,使它们分别指向n个文件(确切地说是指向该文件信息的结构体变量),实现对文件的访问。;12.2 文件的打开与关闭; 如果成功打开一个文件,则fopen()函数将返回一个指向该文件的指针,否则将返回空指针(NULL),由此可以判断一个文件是否成功打开。 ;12.2.2 关闭文件的函数fclose ? fclose函数用来关闭一个文件,其使用格式如下: fclose(文件类型指针); 例如: fclose(fp); 用fcl

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档