2016-04-15 14 views
0

Ich arbeitete an einem Beispiel für this answer und ich bemerkte, dass http://ideone.com mich bis EOF von cin lesen lassen, aber Visual Studio 2015 nicht.Read cin bis EOF

Zum Beispiel gegeben das Programm:

string i; 

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

ich den Eingang geben kann:

Lorem Ipsum

Und http://ideone.com beenden wird: http://ideone.com/22uNOr

Visual Studio 2015 wird fortgesetzt e für die Eingabe wartet jedoch, bis ich drücken Ctrl +Zund hit Geben Sie

Ist das ein gcc/Visual Studio Unterschied oder einfach nur etwas http://ideone.com tut?

+2

Es ist eine ideone Sache. Es leitet die Eingabe an Ihr Programm, es interagiert nicht interaktiv. (Wie würde die interaktive Konsole wissen, dass keine weiteren Eingaben kommen werden?) – molbdnilo

+0

@molbdnilo Das ist, was ich vermutete ... Ich war mir nur nicht sicher, ob gcc mich zum Ende von 'cin' extrahieren würde, und da ich es nicht tat Ich habe GCC lokal verfügbar, ich dachte, ich würde fragen. Könnten Sie das als Antwort aufschreiben? –

+0

@ JonathanMee Es ist das gleiche bei Coliru BTW. –

Antwort

0

Unter http://ideone.com können Sie Eingaben auf der Registerkarte "Eingabe" vornehmen. Alles, was in dieses Feld eingegeben wird, wird an cin mit einem angehängten eof Zeichen übergeben. wenn

Zum Beispiel können Sie tun:

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

auf dem lokalen Computer, die nie wieder kommen, bis Sie Ctrl + z drücken und drücken Geben Sie aber auf http://ideone.com wird es immer wieder zurückkehren nach Parsing alles eingegeben in die "Eingabe" -Registerkarte.