2016-03-21 7 views
1

ich dieses Stück Code habenwie funktioniert die Cin und Cout Objekte in einer Schleife

int main() 
{ 
    char ch; 
    while (cin >> ch) 
    cout << ch; 
    return 0; 
} 

Was ich wandern wird, wie funktioniert cin Arbeit in der while() Schleife? Ich meine, hat es einen inneren Index zu dem es aufgehört hat?

+0

'' cin'' wie ein Puffer wirkt. Wenn Sie Daten eingeben, wird es in einer Warteschlange gespeichert. Wenn Sie Daten von "cin" lesen, werden die Daten in der Warteschlange oder im Puffer (wie auch immer Sie es nennen möchten) entfernt. – BrainStone

+0

Ein innerer Index? Warum ja? Lesen Sie hier mehr: http://en.cppreference.com/w/cpp/io/basic_istream/tellg – user4581301

Antwort

2

Während Sie Daten eingeben, wird die Schleife fortgesetzt, es wird stoppt erst, wenn Fund EOF (End of File) ctrl + C (in Windows) ctrl + D (unter Linux)

Dies nützlich ist, wenn Sie eine Menge testen müssen von Fällen und Sie nicht sicher wissen, wie viele sind, können Sie eingeben, wie oft Sie wollen, wird das Programm nur gestoppt, wenn das Ende der Datei gefunden wird!

Beispiel Eingabe

a 
b 
c 
(ctrl + d) 

Ausgabe

a 
b 
c 
the program will finish because EOF was found! 

diese Referenz Siehe: http://www.cplusplus.com/reference/cstdio/EOF/

+0

was meinst du? –

+0

@MekacherAnis überprüfe mein Update! –