阅读cin直到EOF

时间:2016-04-15 13:38:54

标签: c++ visual-studio gcc eof

我正在研究this answer的一个示例,我注意到http://ideone.com会让我从EOF读到cin,但Visual Studio 2015不会。

例如,给定程序:

string i;

while(cin >> i) cout << i << endl;

我可以提供输入:

  

Lorem Ipsum

http://ideone.com将终止:http://ideone.com/22uNOr

Visual Studio 2015将继续等待输入,直到我按 Ctrl + Z 点击 Enter < / p>

这是gcc / Visual Studio的区别还是http://ideone.com正在做的事情?

1 个答案:

答案 0 :(得分:0)

http://ideone.com上,您可以在“输入”标签上提供输入。输入此框的任何内容都会被输入cin后附加eof个字符。

例如,如果你这样做:

while (cin.get() != decltype(cin)::traits_type::eof());

在您的本地计算机上,在您按 Ctrl + z 并按 Enter 之后永远不会回来,但在http://ideone.com上解析输入“输入”选项卡的所有内容后,将始终返回。