C语言11文件分析.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言11文件分析

第十一章 文件 11.1 文件的基本概念 文件的基本概念 所谓“文件”(file)是指一组相关数据的有序集合。这个数据集有一个名称,叫做文件名。 如:源程序文件(.c)、目标文件(.obj)、可执行文件(.exe)、头文件 (.h)等。 C语言“流(stream)”文件概念 在C语言中,引入了“流(stream)”的概念。它将数据的输入输出看作是数据流的流入和流出,这样不管是磁盘文件或者是物理设备(打印机、显示器、键盘等),都可看作一种流的源和目的,视他们为同一种东西,而不管其具体的物理结构。 即对他们的操作,就是数据的流入和流出。 3. C文件系统 C语言的文件系统分为缓冲文件系统、非缓冲文件系统 缓冲文件系统 系统自动地在内存中为每一个正在使用的文件开辟一个缓冲区。从内存向磁盘输出数据时,必须先儙入到内存中的缓冲区,待充满缓冲区后,启动磁盘一次,将缓冲区内容装到磁盘文件中去。 非缓冲文件系统 非缓冲文件系统指系统不自动开辟确定大小的缓冲区,而由每个文件设定缓冲区。 11.2 文件的类别 从用户的角度,文件可分为普通文件和设备文件。 从文件编码角度,文件可分为ASCII码文件和二进制码文件 11.3文件指针 在C语言中,无论是普通文件还是设备文件,都可通过一个称为FILE的文件结构类型的数据集合进行输入输出操作。该结构中含有文件名、文件状态和文件当前位置等信息,包含在stdio.h中。如FILE在Turbo C 系统中定义为: typedef struct { int_fd; /*文件号*/ int_cleft; /*缓冲区中剩下的字符*/ int_mode; /*文件操作模式*/ char *_nextc; /*下一个字符位置*/ char_buff; /*文件缓冲区位置*/ }FILE; 定义文件指针的一般形式为: FILE *指针变量标识符; FILE *fp; 表示fp是指向FILE结构体的指针变量,通过fp即可找存放某个文件信息的结构体变量,然后按结构体变量提供的信息找到该文件,实施对文件的操作。 对FILE须有下面几点了解: FILE是系统定义的一个结构体类型 在编写源程序时用户不必关心FILE结构的细节。如当一个文件被打开时,C编译程序自动建立该文件FILE结构,不需要用户自己定义。 定义多个文件指针可用:FILE *fp1,*fp2 如果要同时对多个文件进行操作,一般应设多个指针变量,使他们指向对应的文件,以实现对文件的访问。 凡使用FILE型文件,必须在程序开头嵌入stdio.h头部文件。 11.4文件操作概述 文件处理的一般过程 定义文件指针—打开文件-读/写文件-关闭文件 文件处理的一般算法 C语言对文件的操作通过一系列库函数来实现的,文件操作必须遵循一定的步骤,一般操作算法是: if 打开文件失败 {显示失败信息} else {按算法要求读/写文件内容,关闭文件} 11.5.2 文件的关闭(fclose函数) 用fclose函数关闭文件: 形式: fclose(文件指针); 功能:关闭fp指向的文件。 返值:正常关闭为0;出错时, 为EOF(-1)。 例如: fclose(fp); 正常完成关闭文件操作时,fclose函数返回值为0。如关闭出错,返回值EOF(-1).可用ferror函数验证 。 11.5.3 文件的读/写 1.单个字符读/写函数 字符读/写函数是以字符(字节)为单位的读/写函数。 每次可从文件读出或向文件写入一个字符。 (1) 读字符函数fgetc 形式: 字符变量=fgetc(文件指针); 功能:从fp指向的文件中读取一字节代码,并赋给字符变量。 返值:正常,返回读到的代码值;读到文件尾或出错,返回值为EOF。 例:ch=fgetc(fp) 其意义是:从fp指向的文件中读取一个字符并送入变量ch中。 例11.1 读并显示文本文件readme.txt的内容 #include stdio.h main() { FILE *fp; char ch,*filename=“readme.txt”; if((fp=fopen(filename,”r))==NULL) { printf(error:cannot open file\n); exit(0); } while((ch=fgetc(fp))!=EOF) putchar(ch); fclose(fp); } 【说明】 每写入一个字符,文件内部位置指针向后移动一个字节。 被写入的文件可以用写、读/写、追加

文档评论(0)

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

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

1亿VIP精品文档

相关文档