- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
滨江学院 第十三章 文件 www.BJXY.cn C语言程序设计教学课题组 第13章 文件 文件概述 文件类型指针 文件的打开与关闭 顺序读写文件 随机读写数据文件 13.1 文件概述 文件是指存储在外部介质(如磁盘)上的相关数据的集合。这里的数据可以是程序的代码,也可以是纯粹的数据或文档。 操作系统以文件为单位对数据进行管理,也就是说,如果想找在外部介质上的数据,必须先按文件名找到所指定的文件,然后再从该文件中读取数据。要向外部介质上存储数据也必须先建立一个文件(以文件名标识该文件),才能向它输出数据。 程序设计中,主要用到两种文件: (1)程序文件。包括源程序文件(后缀为.c)、目标文件(后缀为.obj)、可执行文件(后缀为.exe)等。这种文件的内容为程序代码。 (2)数据文件。文件的内容不是程序,而是提供给程序运行时读写的数据,如在程序运行过程中输出到磁盘的数据,或在程序运行过程中供输入的数据。 C语言把文件看做一个字符(或字节)序列,即由一个一个字符(或字节)数据顺序组成。 C语言的数据文件由一连串的字符(或字节)组成,不考虑行的界限,两行之间的数据不会自动加分隔符(如换行符),对文件的存取是以字符(字节)为单位。输入输出数据流的开始和结束仅受程序控制,不受物理符号(如回车换行符)控制,这种文件称为流式文件。 文件名 文件标识指出了文件所在的设备、位置、名字和类型。例如:D:\TEMP\EXAMPLE\E1.DAT 文件分类: 根据数据的组织形式,数据文件分为ASCII文件和二进制文件 ASCII文件又称为文本文件(text file),每一个字节存放一个字 符的ASCII代码。 文件类型指针 FILE *fp ; 文件的存取方式 C数据文件的存取方式分为两种:顺序存取和直接存取 文件的定位 文件打开 FILE *fp ; 定义一个文件型指针 fp=fopen (“file1”,“r”) ; 打开w1文件,返回值赋给fp if((fp=fopen(f1,r))= =NULL) {printf(“cannot open this file\n”); exit(0) ; } 文件使用方式 含义 如果指定的文件不存在 r(只读) 为输入数据打开一个已经存在的文件 出错 w(只写) 为输出数据打开一个文本文件 建立新文件 a(追加) 向文本文件尾添加数据 出错 rb(只读) 为输入数据打开一个二进制文件 出错 wb(只写) 为输出数据打开一个二进制文件 建立新文件 ab(追加) 向二进制文件尾添加数据 出错 r+(读写) 为读写打开一个文本文件 出错 w+(读写) 为读写建立一个新文本文件 建立新文件 a+(读写) 为读写打开一个文本文件 出错 rb+(读写) 为读写打开一个二进制文件 出错 wr+(读写) 为读写打开一个新的二进制文件 建立新文件 ab+(读写) 为读写打开一个二进制文件 出错 文件关闭 fclose(fp); 13.4 顺序读写文件 字符读写 fgetc (fp) 从fp指向的文件中读入一个字符读成功,返回所读的字符,失败返回EOF(-1) fputc (ch , fp) 把ch里的字符写到fp指向的文件中输出成功返回输出的字符,失败返回EOF(-1) 【例13-1】从键盘输入一些字符,逐个输出到磁盘上的文件中,直到用户输入“!”为止。 #include stdio.h #include stdlib.h void main( ) { FILE *fp ; char c , fn[20]; printf(输入一个文件名) ; scanf(“%s” , fn ) ; if((fp=fopen(fn , “w” ))= =NULL) {printf(文件打不开\n) ; exit(0) ;} getchar( ) ; printf(“输入一个要存储到磁盘文件的字符串(以!结束):”) ; c=getchar( ) ; while(c !=’!’) {fputc(c , fp ) ; putchar( c ); c=getchar( ) ; } fclose(fp) ; printf(“\n”); 13.4.2 字符串读写 fgets (str , n , fp) 从fp指向的文件中读入一个长度为n-1的字符串,存放到数组str中成功,返回地址str,失败返回NULL fputs (str , fp) 把str指向的字符串写到fp指向的文件中输出成功返回0,失败返回非
文档评论(0)