第十三章计算机.docVIP

  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文档。上传文档
查看更多
第十三章计算机

第十三章 文件 13.1 C文件概述 所谓“文件”一般是指存储在外部介质上的数据的集合。操作系统是以文件为单位对数据进行管理的。 1.文件的分类 C语言把文件看作是一个字符(字节)的序列,即一个一个字符(字节)的数据顺序组成,因此这种文件称为流式文件。根据数据的组织形式可分为ASCⅡ文件和二进制文件。 ASCⅡ文件又称文本文件,它的每一个字节中存放一个ASCⅡ码,代表一个字符。二进制文件是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。 2.处理方法 C语言对文件的处理方法有两种:缓冲文件系统和非缓冲文件系统。 所谓“缓冲文件系统”是指系统自动地在内存区中为每一个正在使用的文件开辟一个缓冲区。“非缓冲文件系统”是指系统不自动开辟确定大小的缓冲区,而由程序为每个文件设定缓冲区。 ASCI C 标准不采用非缓冲文件系统,只采用缓冲文件系统。 13.2 文件类型指针 在缓冲文件系统中,每个被使 用的文件的有关信息存放在内存中,这些信息是保存在一个名为FILE的结构体类型的变量中的。使用该结构体类型的指针变量来实现对文件的访问。 13.3 文件的打开与关闭 在读写一个文件之前,必须先打开这个文件,使用结束之后应关闭该文件。 1.文件的打开(fopen函数) ⑴调用方式 FILE * fp; fp=fopen(文件名,使用文件方式); 该函数的返回值是被打开的文件的指针。 ⑵文件的使用方式 使用方式 含义 “r”只读 为输入打开一个文本文件 “w”只写 为输出打开一个文本文件 “a”追加 向文本文件尾增加数据 “rb”只读 为输入打开一个二进制文件 “wb”只写 为输出打开一个二进制文件 “ab”追加 向二进制文件尾增加数据 “r+”读写 为读/写打开一个文本文件 “w+”读写 为读/写建立一个新的文本文件 “a+” 读写 为读/写打开一个文本文件 “rb+” 读写 为读/写打开一个二进制文件 “wb+” 读写 为读/写建立一个新的二进制文件 “ab+” 读写 为读/写打开一个二进制文件 ⑶说明 ①凡用“r”打开一个文件时,该文件必须已经存在, 且只能从该文件读出。用“w”打开的文件只能向该文件写入。 若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。③若要向一个已存在的文件追加新的信息,只能用“a ”方式打开文件。但此时该文件必须是存在的,否则将会出错。在打开一个文件时如果出错,fopen将返回一个空指针值NULL。if((fp=fopen(文件名,使用方式))==NULL) { printf(\ncannot open the file!); exit(0);} ⑤把一个文本文件读入内存时,要将ASCII码转换成二进制码, 而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码,因此文本文件的读写要花费较多的转换时间。对二进制文件的读写不存在这种转换。标准输入文件,标准输出文件,标准出错输出是由系统打开的,可直接使用。文件关闭函数文件一旦使用完毕,应用关闭文件函数把文件关闭, 以避免文件的数据丢失等错误⑴调用式: fclose(文件指针); ⑵功能:正常完成关闭文件操作时,fclose函数返回值为0。fputc(ch,fp); ⑵功能把字符写入指的文件中,其中可以是字符常量或变量。如写入成功返回写入的字符否则返回EOF可用此来判断写入是否成功例题:将键盘上输入的一个字符串(以“#”作为结束字符),以ASCII码的形式存储到一个磁盘文件中。 Lt1.c 2.fgetc函数 ⑴用法:ch=fgetc(fp);功能从指的文件中读一个字符例题:顺序显示一个磁盘ASCII码文件的内容。 Lt2.c 3.feof()函数 ⑴用法:feof(fp); ⑵功能:判断fp所指向的文件当前是否结束,如果遇到文件尾,则函数返回1;否则返回0。 ⑶说明:feof函数同时适用于两种文件,但在对二进制文件进行读入操作时,必须使用feof()函数来判断是否遇到文件尾。 4.fread()函数 ⑴用法:fread(buffer,size,count,fp); ⑵功能:从fp所指向文件的当前位置开始,一次读入size个字节,重复count次,并将读入的数据存放到从buffer开始的内存中。如果函数调用成功,则返回值为count。 5.fwrite()函数 ⑴用法:fwrite(buffer,size,count,fp); ⑵功能:从buffer开始,一次输出size个字节,重复count次,并将输出的数据存放到fp所指向文件中。如果函数调用成功,则返回值为count。 ⑶例题:从键盘输入两个学生数据,写入一个文件中,再读出这两个学生的数据显示在屏幕上。Lt3.

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档