- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
修改方法1: fread(x, len, 1, fp); while(!feof(fp)) { i++; printf(学生%d: %s, %d, %.2f\n, i, x.name, x.num, x.score); fread(x, len, 1, fp); } 修改方法2: while( fread(x, len, 1, fp)==1 ) { i++; printf(学生%d: %s, %d, %.2f\n, i, x.name, x.num, x.score); } 出现这种问题的原因:feof实际观察的是上次读操作的内容,也就是上次fread函数的返回值,若fread返回值为1, 表明读取的不是空,则feof就返回0,表示文件没结束;如果上次读操作失败了,则feof返回1,表示文件结束。 8.5 文件检测函数 2. ferror函数 在调用各种文件读写函数时, 可能因某些原因导致失败, 如果 出现错误, 除了函数返回值有所反映外, 还可用ferror函数进行检查 函数原型:int ferror(FILE *fp) 函数参数:FILE *fp — 文件指针 函数功能:检查fp所指向的文件在调用各种读写函数时是否出错。 函数返回值:若当前读写操作没有出现错误,则返回0; 出错则返回非0值。 说明: ① 对同一文件每调用一次读写函数, 均产生一个新的ferror函数值, 因此,应当在调用一个读写函数后立即检查ferror函数的值,否则 信息会丢失。 ② 在执行fopen函数时,ferror函数的初始值自动置为0。 #include stdio.h #include stdlib.h void main( ) { FILE *fp; if((fp=fopen(test.txt, r))==NULL) { printf(Can not open file.\n); exit(1); } fputc(A, fp); if(ferror(fp)) { printf(File Error\n); exit(1); } fclose(fp); } 【例】:ferror应用举例 8.5 文件检测函数 3. clearerr函数 当错误处理完毕后,应清除相关的错误标志,以免进行重复的 错误处理,这时应使用clearerr函数。 函数原型:void clearerr(FILE *fp) 函数参数:FILE *fp — 文件指针 函数功能:使文件错误标志和文件结束标志置为0。假设在调用 一个读写函数时出现错误,ferror函数值为非零值。 在调用clearerr(fp); 后,ferror函数值变成0。 说明: 一旦文件读写操作出现错误,系统内部的一个错误标志就被设为 非0值,调用ferror( )函数可得到该错误标志的值。错误标志会一 直保留,直到清除调用clearerr函数,或下一次调用读写函数, 才能改变该标志的值。 #include stdio.h #include stdlib.h void??main(void){???FILE *fp; char ch;????if((fp = fopen(“newfile.txt, w))==NULL) { printf(Can not open file.\n); exit(1); } ??? ch=fgetc(fp);??? if (ferror(fp)) //出错返回非0值??? {???printf(Error reading !\n);?????? clearerr(fp); //调用后ferror(fp)的值为0 ??? }??? if( !ferror(fp) ) printf(Error indicator cleared!\n);??? fclose(fp);} 【例】:clearerr应用举例 本章小结 C语言把文件看作是一个字节的序列。 根据数据的组织形式文件分为两类: 文本文件和二进制文件。 C中通过一个文件类型的指针使用文件。 使用文件的第一步用fopen()函数打开指定文件,打开时必须 指明文件的打开方式,使用文件的最后一步是关闭文件,通过fclose()函数实现。 文件读写是
您可能关注的文档
- 课件:CRR副本.ppt
- 课件:CRR医生应该关注.ppt
- 课件:CRR原理.ppt
- 课件:CRR原理及其进展.ppt
- 课件:CRR原理及配方要点.ppt
- 课件:CRR原理简介.ppt
- 课件:CRR及其护理原创.ppt
- 课件:CRR周三学习.ppt
- 课件:CRR回路安装流程.ppt
- 课件:CRR在ICU中的应用.ppt
- 基本面选股组合月报:大模型AI选股组合本年超额收益达6.60.pdf
- 可转债打新系列:安集转债,高端半导体材料供应商.pdf
- 可转债打新系列:伟测转债,国内头部第三方IC测试企业.pdf
- 联想集团PC换机周期下的价值重估.pdf
- 计算机行业跟踪:关税升级,国产突围.pdf
- 科技类指数基金专题研究报告:详解AI产业链指数及基金布局.pdf
- 计算机行业研究:AIAgent产品持续发布,关税对板块业绩影响较小.pdf
- 民士达深度报告:国内芳纶纸龙头,把握变局期崛起机遇.pdf
- 社会服务行业动态:全球首张民用无人驾驶载人航空器运营合格证落地,霸王茶姬冲击美股IPO.pdf
- 通信行业研究:特朗普关税令落地,长期看好国产算力链.pdf
文档评论(0)