- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
§13.4 文件的读写(续) 常见的读取字符操作 从一个文本文件顺序读入字符并在屏幕上显示出来: ch = fgetc(fp); while(ch!=EOF) {putchar(ch);ch = fgetc(fp); } 注意:EOF不是可输出字符,因此不能在屏幕上显示。 由于字符的ASCII码不可能出现-1,因此EOF定义为 -1是合适的。当读入的字符值等于-1时,表示读入 的已不是正常的字符而是文件结束符。 §13.4 文件的读写(续) 常见的读取字符操作 从一个二进制文件顺序读入字符: while(!feof(fp)) {ch = fgetc(fp); } 注意:ANSI C提供一个feof()函数来判断文件是否 真的结束。如果是文件结束,函数feof(fp)的值为1 (真);否则为0(假)。以上也适用于文本文件的读取。 §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.1从键盘输入一些字符,逐个把它们送到 磁盘上去,直到输入一个“#”为止。 #include stdlib.h #include stdio.h void main(void) { FILE *fp;char ch,filename[10];scanf(%s,filename);if((fp=fopen(filename,w))==NULL) {printf(cannot open file\n);exit(0); /*终止程序*/}ch=getchar( ); /*接收执行scanf语句时最后输入的回车符 */ch=getchar( ); /* 接收输入的第一个字符 */while(ch!=#{fputc(ch,fp);putchar(ch); ch=getchar(); }fclose(fp); } 运行情况如下: file1.c(输入磁盘文件名) computer and c#(输入一个字符串) computer and c (输出一个字符串) §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2将一个磁盘文件中的信息复制到另一个磁 盘文件中 。 #include stdlib.h #include stdio.h main( ) {FILE *in,*out; char ch,infile[10],outfile[10]; printf(Enter the infile name:\n); scanf(%s,infile); printf(Enter the outfile name:\n); scanf(%s,outfile); if((in=fopen(infile,r))==NULL) { printf(cannot open infile\n);exit(0);} if((out=fopen(outfile,w))==NULL){ printf(cannot open outfile\n);exit(0);}while(!feof(in))fputc(fgetc(in),out);fclose(in);fclose(out);} 运行情况如下: Enter the infile name file1.c(输入原有磁盘文件名 Enter the outfile name: file2.c (输入新复制的磁盘文件名) 程序运行结果是将file1.c文件中的内容复制到 file2.c中去。 §13.4 文件的读写(续) fputc和fgetc函数使用举例: 例13.2的改进:复制一个二进制文件,利用main 参数,在输入命令行是将两个文件名输入。 #include stdlib.h #include stdio.h main(int argc,char *argv[ ]) {FILE *in,*out; char ch; if (argc!=3) { printf(You forgot to enter a filename\n); exit(0); } if((in=fopen(argv[1],rb))==NULL) { printf(cannot open infile\n);exit(0);}if((out=fopen(argv[2],wb))==NULL){ printf(cannot open outfile\n);exit(0);}while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out);} 运行方法: 设经编译连接后得到的可执行文件名为a.exe,则在DOS命令工 作方式下,可以输入以
您可能关注的文档
最近下载
- LBT 339-2025 北方地区 绿色食品设施莴笋生产操作规程.pdf VIP
- 基础护理学病情观察及危重患者的抢救和护理.pptx VIP
- 八年级下册道德与法治电子课本(附2023年教材变动内容).doc VIP
- 旅游概论-旅游者.pptx VIP
- 亚龙156A电气安装-电气培训PPT(项目二).ppt VIP
- 【公开版】《2023年美年健康体检大数据蓝皮书》.pdf VIP
- 《枫桥夜泊》的教学设计一等奖 .docx VIP
- 大类资产配置新框架,比特币和黄金:新旧时代的“代货币”.pdf VIP
- 2025年冰雪旅游行业投资回报分析报告.docx
- 2025年中国国家重点实验室建设行业供需策略分析及市场供需预测报告.docx
文档评论(0)