文件输入未按预期工作
Posted
技术标签:
【中文标题】文件输入未按预期工作【英文标题】:File input not working as expected 【发布时间】:2012-10-06 04:25:02 【问题描述】:主要:
ifstream file("text.txt");
string line;
while (file)
file>>line;
cout<<line<<endl;
在 text.txt 中:
hello
goodbye
输出:
hello
goodbye
goodbye
为什么最后一行打印了两次?
【问题讨论】:
见:***.com/questions/7868936/c-read-file-line-by-line @pb2q 很好,但这个问题与我提出的问题不同。我知道还有其他(也许更好的)方法可以做我想做的事,但我想知道为什么 这种 方法不起作用,以及为什么它会做它做的事情。 我明白为什么“hello”被打印两次,但不明白为什么“goodbye”被省略。我无法重现你的结果。 嗯...谢谢你的尝试。你能告诉我为什么 hello 被打印两次吗?因为我不明白那部分。 当我编译它时,我得到:hello goodbye goodbye
【参考方案1】:
重复:当您第一次阅读“再见”时,您不知道您已到达文件末尾并进入下一个迭代。然后读取失败,设置eof
位,但打印出line
的当前值,仍然是'再见'。
【讨论】:
以上是关于文件输入未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章