【发布时间】:2015-06-07 04:03:14
【问题描述】:
当我运行下面的代码时,我使用了三个输入(在 Ubuntu 终端中):
- abc(Ctrl+D)(Ctrl+D)
- abc(Ctrl+D)(回车)(Ctrl+D)
- abc(Enter)(Ctrl+D)
代码在所有情况下都反应良好。我的问题是:为什么在 1) 和 2) 中我需要两个 EOF?
#include <iostream>
int main()
{
int character;
while((character=std::cin.get())!=EOF){}
std::cout << std::endl << character << std::endl;
}
【问题讨论】:
-
您对 Ctrl+D 的作用做出了毫无根据的假设。
-
对此有很多疑问,包括Why does
getchar()recognize EOF only in the beginning of a line?。还有这个问题我已经关闭了这个作为副本。