麻烦问一下,这里使用的应该是多点测试的while-EOF型。出现EOF不是当文件读到末尾才结束吗?为什么输入样例中最后一个3没有在while循环中被读入呢?
3条回答 默认 最新
- 赵4老师 2022-03-03 03:33关注
不要使用 while (条件) 更不要使用 while (组合条件) 要使用 while (1) { if (条件1) break; //... if (条件2) continue; //... if (条件3) return; //... } 因为前两种写法在语言表达意思的层面上有二义性,只有第三种才忠实反映了程序流的实际情况。 典型如: 下面两段的语义都是当文件未结束时读字符 while (!feof(f)) { a=fgetc(f); //... b=fgetc(f);//可能此时已经feof了! //... } 而这样写就没有问题: while (1) { a=fgetc(f); if (feof(f)) break; //... b=fgetc(f); if (feof(f)) break; //... } 类似的例子还可以举很多。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 霍尔传感器hmc5883l的xyz轴输出和该点的磁感应强度大小的关系是什么
- ¥15 vscode开发micropython,import模块出现异常
- ¥20 Excel数据自动录入表单并提交
- ¥30 silcavo仿真,30分钟,只需要代码
- ¥15 FastReport 怎么实现打印后马上关闭打印预览窗口
- ¥15 利用3支股票数据估计其均值和方差的95%置信区间。
- ¥15 微信小程序运行一项功能时,弹出未知错误弹框,检查代码没有问题
- ¥15 ATAC测序生成self-pseudo replicates之前是否要进行去线粒体reads
- ¥15 python模糊字匹配函数问题
- ¥20 谁刷目标页面的uv记录器上数据,数据只记录跳转的数值