2016-04-15 91 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將解析後總是返回所有輸入到「輸入」選項卡中。