麻烦问一下,这里使用的应该是多点测试的while-EOF型。出现EOF不是当文件读到末尾才结束吗?为什么输入样例中最后一个3没有在while循环中被读入呢?
出现EOF不是当文件读到末尾才结束吗?为什么输入样例中最后一个3没有在while循环中被读入呢?
麻烦问一下,这里使用的应该是多点测试的while-EOF型。出现EOF不是当文件读到末尾才结束吗?为什么输入样例中最后一个3没有在while循环中被读入呢?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- 赵4老师 2022-03-03 11: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 ssh登录页面的问题
- ¥60 渗透一个指定银行app,拿到客户信息,需要什么级别
- ¥50 关于在matlab上对曲柄摇杆机构上一点的运动学仿真
- ¥15 jetson nano
- ¥15 :app:debugCompileClasspath'.
- ¥15 windows c++内嵌qt出现数据转换问题。
- ¥20 公众号如何实现点击超链接后自动发送文字
- ¥15 用php隐藏类名和增加类名
- ¥15 算法设计与分析课程的提问
- ¥15 用MATLAB汇总拟合图