C++文件读取问题!什么情况下会一直读入 -1 ,但是判断eof()却一直为0
答案:4 悬赏:60
解决时间 2021-02-09 23:50
- 提问者网友:夜微涼
- 2021-02-09 20:18
C++文件读取问题!什么情况下会一直读入 -1 ,但是判断eof()却一直为0
最佳答案
- 二级知识专家网友:飘零作归宿
- 2021-02-09 21:45
不是你的文件有问题,问题肯定出在in.eof()的判断上,其实已经读到文件末尾了,所以peek()返回的是-1,但是eof没有返回应该返回的true。具体是什么原因,你要去查查eof()函数的使用方法。
你跟踪一下eof()返回的值,你会发现返回了一个很大的整数,而不是0或者-1,所以导致一直循环。
把
while(temp!=ch&&!in.eof());
改成while(temp!=ch && cin.peek() != EOF); 问题解决
你跟踪一下eof()返回的值,你会发现返回了一个很大的整数,而不是0或者-1,所以导致一直循环。
把
while(temp!=ch&&!in.eof());
改成while(temp!=ch && cin.peek() != EOF); 问题解决
全部回答
- 1楼网友:堕落奶泡
- 2021-02-10 00:33
代码贴出来 瞅瞅
- 2楼网友:承载所有颓废
- 2021-02-10 00:16
贴出文件的内容来看看
- 3楼网友:都不是誰的誰
- 2021-02-09 23:00
是文件的结尾标志,通过它可以判断到达了文件尾部
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯