- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言 第九章.文件
C语言程序设计 文件 * * 文件概述 在程序运行时,程序本身和数据一般都存放在内存中。当程序运行结束后,存放在内存中的数据就被释放。如果需长期保存程序运行所需的原始数据或程序运行产生的结果,就必须以文件的形式存储在外存上。 文件是在外部介质上以某种形式组织起来的数据集合或设备。 1、文本文件(ASCII码文件):这种文件在磁盘中存放时每个字符对应一个字节,用于存放对应的ASCII码。 如整数123存放在文本文件中将是‘1’,‘2’,‘3’的字符序列(00110010),占3个字节。 2、二进制文件:把内存中的数据按其在内存中的存储形式原样输出到磁盘上。 整数123存放在二进制文件中,将01111011,占两个字节。 根据对文件的处理方法的不同可以分为缓冲文件系统和非缓冲文件系统。 缓冲文件系统:是指在对文件进行操作时,系统将自动地在内存中为每一个正在使用的文件开辟一块区域作为缓冲区,文件的存取都是通过缓冲区来进行。 文件操作的一般步骤 缓冲文件系统中,文件都是通过文件指针来进行操作,对文件操作的一般步骤是: 1、定义文件指针 2、打开文件 3、读写文件 4、关闭文件 以下三个文件指针分别对应三个标准设备,系统会自动打开它们。 stdin stdout stderr 标准输入流 标准输出流 标准错误流 键盘 屏幕 屏幕 int i,j; scanf(%d%d,i,j); printf(i=%d,j=%d\n,i,j); 定义文件指针 typedef struct { short level; unsigned flags; char fd; unsigned char hold; short size; unsigned char *buffer; unsigned char *curp; unsigned istemp; short token; }FILE; 系统给每个打开的文件在内存中开辟一个区域,用与存放文件的有关信息。这些信息保存在一个结构体变量中。 C语言中用一个指针变量指向一个文件,通过文件指针就可以对它所指的文件做各种操作。 FILE *fp; 所以:文件指针是一个结构体指针 文件的打开和关闭 对文件进行读写操作之前,必须先打开文件。 FILE *fopen(char *filename,char *type); filename是要打开文件的文件名 type表示打开文件的方式 基本方式是 : r(只读) w(只写 、创建) a(追加) 加b: 对二进制文件 加+ :读写 注意: 1、r和a要求该文件必须存在,否则出错(返回NULL) 2、w为新建文件(如原来存在同名文件,被覆盖) 文件打开成功,返回一个文件指针,打开失败,返回NULL FILE *fp1,*fp2; if((fp1=fopen(File1.txt,r))==NULL) { printf(File1 open Error!); exit(1); } if((fp2=fopen(File2.txt,w))==NULL) { printf(File2.txt open Error!); exit(1); } 文件的打开和关闭 对文件操作完成之后,必须调用fclose函数关闭文件。 int fclose(FILE *stream); 关闭文件指针对应的文件。若成功关闭文件返回0,否则返回一个非0值。 FILE *fp; if((fp=fopen(File1.txt,r+))==NULL) { printf(File1 open Error!); exit(1); } /**/读写文件/**/ fclose(fp); 文件的读写操作 一个文件打开后,就可以对其进行读写操作。 读写一个字符:fgetc()、fputc() 读写一个字符串:fgets()、fputs() 读写一个数据块: fread()、fwrite() 格式化读写: fscanf()、fprintf() int fgetc(FILE *fp); /*从指定的文件中读取一个字符*/ int fputc(char ch,FILE *fp);/*将一个字符写到指定的文件中*/ #includestdio.h void main() { FILE *fp1,*fp2;char ch; if((fp1=fopen(File1.txt,r))==NULL) { printf(File1 ope
文档评论(0)