2016-04-15 86 views
0

我正在为this answer做一个例子,我注意到http://ideone.com会让我从cin直到EOF,但Visual Studio 2015不会。阅读cin至EOF

例如,给定的程序:

string i; 

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

我可以给输入:

Lorem存有

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

的Visual Studio 2015年将继续Ë等待输入但是直到我按下Ctrl键+ž输入

这是一个gcc/Visual Studio的差异或只是一些http://ideone.com是干什么的?

+2

这是一个意识形态的东西。它将输入管道输入到程序中,但不会以交互方式输入。 (互动控制台如何知道没有更多的输入会来?) – molbdnilo

+0

@molbdnilo这就是我怀疑的......我只是不确定gcc是否会让我提取到'cin'的末尾,因为我不知道本地没有gcc,我想我会问。你可以把它作为答案吗? –

+0

@JonathanMee在coliru BTW中也是如此。 –

回答

0

http://ideone.com上,您可以在“输入”选项卡上提供输入。输入到此框中的任何内容都将被输入cin,并附有eof字符。

例如,如果你这样做:

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

在本地的机器,再也不会回来了,直到你按下按Ctrl + ž并按输入但在http://ideone.com将解析后总是返回所有输入到“输入”选项卡中。