- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
尚辅网 尚辅网 第12章 文件 文件是程序设计中一个重要的概念。所谓“文件”一般指存储在外部介质上数据的集合。一批数据是以文件的形式存放在外部介质(如磁盘)上的。每个文件都必须有一个文件名,其一般结构为:主文件名[.扩展名] 。文件一般可分为程序文件和数据文件。程序文件是由若干个指令语句信息组成,数据文件则是程序操作的一些数值和文字。本章介绍的文件操作主要是对磁盘数据文件的使用和操作。 在程序运行时,常常需要将一些数据(运行的最后结果或中间数据)输出到磁盘上存放起来,以后需要时再从磁盘中输入到计算机内存。这就要用到磁盘文件。 C语言把文件看作是由一个一个字符(字节)的数据顺序组成。根据文件的存储方式。可分为ASCII码文件和二进制文件。 (1)ASCII码文件(又称文本文件),它的每一个字节放一个ASCII代码,代表一个字符。 (2)二进制文件是把内存中的按其在内存中的存储形式原样输出到磁盘上存放。 如:有一个整数100,按二进制形式存储,占用一个字节就够用;按ASCII码形式存储,由于每位数字都要占用一个字节,所以需要3个字节空间。如图12-1 12.2缓冲文件系统与非缓冲文件系统 1.缓冲文件系统 “缓冲文件系统”是指系统自动地在内存区为每个正在使用的文件开辟一个缓冲区。当从内存向磁盘输出数据时,必须首先输出到内存缓冲区中,待缓冲区装满后,再一起输出到磁盘文件中。从磁盘文件向内存读入数据时,则正好相反,首先将一批数据读入到缓冲区中,再从缓冲区中将数据逐个送到程序数据区。 2.非缓冲文件系统 “非缓冲文件系统”指系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。 1983年ANSI C标准决定不再采用非缓冲文件系统,而只采用缓冲文件系统处理文本文件和二进制文件。 12.3文件类型指针 缓冲文件系统中,关键的概念是“文件指针”。在文件操作时,必须定义一个文件指针变量, 只有通过文件指针,才能找到与其相关联的文件,实现对文件的访问。 C语言的文件管理系统为每一个被使用的文件在内存中开辟一个区,用来存放文件的有关信息(如文件名、文件状态及文件当前位置等)。这些信息保存在一个结构体变量中,该结构体类型是由系统定义的取名为FILE。Turbo C在stdio.h文件中有以下的文件类型定义: typedef struct { int _fd; /*文件号*/ int _cleft; /*缓冲区中剩余的字符*/ int _mode; /*操作模式*/ char *_nextc; /*下一个字符位置*/ char *_buff; /* 缓冲位置*/ }FILE; 其中大写的FILE是用typedef自定义的结构类型名。有了FILE类型之后,就可以定义一个指向FILE类型的指针变量,并通过该指针访问文件。 例如:FILE *fp; fp 是一个指向FILE类型结构体的指针变量。这样可以使fp指向某一个文件的结构体变量,从而通过该结构体变量中的文件信息能够访问该文件。 12.4文件打开与关闭 与其他高级语言一样,C语言规定对磁盘文件进行读写之前应该先“打开”该文件,然后再进行具体的读/写操作;在使用结束后,应该关闭该文件。 12.4.1文件的打开 (fopen函数) C语言在其标准输入输出函数库中定义了对文件操作的若干函数,其中fopen()函数用来打开磁盘文件。 调用方式为:FILE *fp; fp=fopen(“文件名”,“使用文件方式”); 如: fp=fopen(“a1”,”r”); 表示打开名字为a1的文件,使用文件方式为“读入”,open函数带回指向a1文件的指针并赋给fp这样fp就和文件a1相联系了,也就是fp指向a1文件。 表12-1文件使用方式 说明: (1) 用“r”方式打开的文件只能用于向计算机输入数据,而且该文件应该已经存在。 (2) 用“w”方式打开的文件只能用于向该文件写数据(即输出文件)。如果原来不存在该文件,则在打开时新建立一个以指定的名字命名的文件。如果原来已存在一个以该文件名命名的文件,则在打开时将该文件删除,然后新建立一个新文件。 (3) 如果希望向文件末尾添加新的数据,则应该用“a”方式打开。但此时 该文件必须已存在;否则将得到错误信息。 (4) 用“r+”、“w+”、“a+”方式打开的文件既可以用来输入数据,也可以用来输出数据。用“r+”时该文件应该已存在,以便能向计算机输入数据。用“w+”则新建立一个文件,先向此文件写数据,然后可以读此文件中的数据。用“a+”打开的文件,原来的文件不被删除,位置指针移到文件末尾,可以追加,也可以读。 (5) 如果不能实现“打开”的任务,fopen函数会带会一个空指针值NULL(其值在头文件“stdio.h
您可能关注的文档
- C语言程序设计(第二版)电子教案任正云 第6章 函数.ppt
- C语言程序设计(第二版)电子教案任正云 第7章数组.ppt
- C语言程序设计(第二版)电子教案任正云 第8章 指针.ppt
- C语言程序设计(第二版)电子教案任正云 第9章结构体和共用体.ppt
- C语言程序设计(第二版)电子教案任正云 第10章文件.ppt
- C语言程序设计(第二版)电子教案王伟 第1章.ppt
- C语言程序设计(第二版)电子教案王伟 第2章.ppt
- C语言程序设计(第二版)电子教案王伟 第3章.ppt
- C语言程序设计(第二版)电子教案王伟 第4章.ppt
- C语言程序设计(第二版)电子教案王伟 第5章.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 C语言入门.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 函数.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 函数复习5.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 计算机基础知识.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 结构化实例7.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 结构体6.1.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 控制.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 算法初步.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 文件6.3.ppt
- C语言程序设计案例教程 第2版 教学课件 作者 廖湖生 叶乃文 周珺 指针6.2.ppt
文档评论(0)