- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
文件读写与打开方式 if 读文件 指定的文件必须存在,否则出错; if 写文件(指定的文件可以存在,也可以不存在) if 以 w 方式写 if 该文件已经存在 原文件将被删去重新建立; else 按指定的名字新建一个文件; else if 以 a 方式写 if 该文件已经存在 写入的数据将被添加到指定文件原有数据的后面,不会删去原来的内容; else 按指定的名字新建一个文件(与“w”相同); if 文件同时读和写 使用 r+、w+ 或 a+ 打开文件 12.2.3 关闭文件 if( fclose(fp) ){ printf( Can not close the file!\n ); exit(0); } fclose(文件指针) 把缓冲区中的数据写入磁盘扇区,确保写文件的正常完成 释放文件缓冲区单元和FILE结构体,使文件指针与具体文件脱钩。 函数fclose() 的返回值 返回0:正常关闭文件 返回非0:无法正常关闭文件 12.3 文件复制 例12-3 已知一个文本数据文件f1.txt,请将该文件复制一份,保存为f2.txt。 新建一个文本文件f1.txt,将该文件与源程序放在同一目录下,执行程序,观察结果。 例12-3 源程序 #include stdio.h int main(void) { FILE *fp1,*fp2; char c; if(( fp1 = fopen( f1.dat, r )) == NULL){ printf( File open error!\n ); exit(0); } if(( fp2 = fopen( f2.dat, w )) == NULL){ printf( File open error!\n ); exit(0); } while( !feof( fp1 ) ){ c = fgetc( fp1 ); fputc(c, fp2); } fclose( fp1 ); fclose( fp2 ); return 0; } THANK YOU SUCCESS * * 可编辑 打开多个文件 if((fp1 = fopen(f1.dat, r)) == NULL){ printf(File open error!\n); exit(0); } if((fp2=fopen(f2.dat, w)) == NULL){ printf(File open error!\n); exit(0); } C语言允许同时打开多个文件 不同的文件对应不同的文件指针 不允许同一个文件在关闭前再次打开 文件读写函数 字符读写函数: fgetc / fputc 字符串读写函数:fputs / fgets 格式化读写函数:fscanf / fprintf 二进制读写函数:fread / fwrite 其他相关函数: 检测文件结尾函数feof 检测文件读写出错函数ferror 清除末尾标志和出错标志函数clearerr 文件定位的函数fseek 12.3.2 字符读写函数fgetc和fputc while( !feof( fp1 ) ){ c = fgetc( fp1 ); fputc(c, fp2); } 函数fputc( ) fputc(ch, fp); 把一个字符 ch 写到 fp 所指示的磁盘文件上 返回值 -1 (EOF):写文件失败 ch:写文件成功 字符读写函数fgetc和fputc 函数fgetc( ) ch = fgetc( fp ) ; 从fp所指示的磁盘文件上读入一个字符到ch 区分键盘字符输入函数getchar( ) 从键盘输入10个字符,写到文件 f2.txt 中,再重新读出,并在屏幕上显示验证。 键盘输入 ? 写入文件 f2.txt ? 读文件 ? 屏幕显示的过程 键盘输入 ? f2.txt时,文件按写方式打开。 f2.txt ? 显示到屏幕时,文件按读方式打开。 读和写是两种不同的操作, f2.txt 分别被打开和关闭两次。 例12-4 源程序 int main(void) { int i; char ch; FILE *fp; if((fp=fopen(f2.t
您可能关注的文档
- 课件:CRR原理及配方要点.ppt
- 课件:CRR原理简介.ppt
- 课件:CRR及其护理原创.ppt
- 课件:CRR周三学习.ppt
- 课件:CRR回路安装流程.ppt
- 课件:CRR在ICU中的应用.ppt
- 课件:CRR在ICU中的应用与护理.ppt
- 课件:CRR在ICU应用.ppt
- 课件:CRR在MODS中的临床应用吉凯强.ppt
- 课件:CRR在临床中的应用.ppt
- 基本面选股组合月报:大模型AI选股组合本年超额收益达6.60.pdf
- 可转债打新系列:安集转债,高端半导体材料供应商.pdf
- 可转债打新系列:伟测转债,国内头部第三方IC测试企业.pdf
- 联想集团PC换机周期下的价值重估.pdf
- 计算机行业跟踪:关税升级,国产突围.pdf
- 科技类指数基金专题研究报告:详解AI产业链指数及基金布局.pdf
- 计算机行业研究:AIAgent产品持续发布,关税对板块业绩影响较小.pdf
- 民士达深度报告:国内芳纶纸龙头,把握变局期崛起机遇.pdf
- 社会服务行业动态:全球首张民用无人驾驶载人航空器运营合格证落地,霸王茶姬冲击美股IPO.pdf
- 通信行业研究:特朗普关税令落地,长期看好国产算力链.pdf
文档评论(0)