Rückgabe von istreams
-
Hey Ich hab hier nen kleinens Problem mit istreams!
#include <iostream> int main() { int sum = 0, value = 0; // read until end-of-file, calculating a running total of all values read while (std::cin >> value) sum += value; // equivalent to sum = sum + value std::cout << "Sum is: " << sum << std::endl; std::cin >> value; return 0; }So wie ich das verstehe gibt der >> - Operator den linken Operanden zurück und somit überprüft die while-Schleife den Ausdruck "std::cin" und der gibt false zurück wenn der Stream EOF oder eine falsche Eingabe enthält, oder? Wenn ich jedoch etwas falsches Eingebe oder Strg + z (windows EOF soweit ich weiß) beendet sich das Programm ohne die cin Anweisung vor dem return Auszugeben

Wenn ich das Programm über die Konsole starte erhalte ich zwar die Summe aber warum beendet sich das ganze einfach? Außerdem ist der Rückgabe Wert des ganzen Programms 0 (also wird das return ausgeführt?)Wäre nett wenn mir jemand erklären kann was hier passiert!

LG
Philo
-
Das was beim ersten cin nicht verarbeitet werden konnte, ist beim zweiten cin immernoch aktuell und damit schlägt auch das fehl, wird aber ausgeführt und danach wird das Programm beendet.
Wie du cin leeren kannst, findest du hier in den FAQs.
-
Super!

Danke für die schnelle Hilfe
Hab mir schon sowas in der Art gedacht 