[Klassen]Variable erhält falschen Wert von Konstruktor?
-
Irgendwie schon, wenn ich die erste while-Schleife genau so lasse, nur statt char cAuswahl int iAuswahl nehme und das dem enstprechend verlinke(halt ohne ') kommt bei einer Eingabe von "u" eine Endlosschleife(und ich hab ja else).
-
das liegt an der fehlerhaften eingabe...
du musst erst die failbits des streams resetten bevor du die nächste eingabe machen kannst...std::cin.clear(); std::cin./*irgendwas mit goodbit, glaube ich xD schon ewig nix mehr mit streams zu tun gehabt ^^*/bb
-
std::cin.clear()sollte reichen. Das setzt alle Fehlerflags zurück.
-
Nexus schrieb:
std::cin.clear()sollte reichen. Das setzt alle Fehlerflags zurück.Man sollte aber noch eine Synchronisierung des Streams erzwingen, da das 'u' immer noch im Stream wäre und einfach bei der nächsten Eingabe wieder einen Fehler auslösen könnte. Daher diese zwei Möglichkeiten:
std::cin.ignore(std::cin.rdbuf()->in_avail()); // Überspringt alles, was noch im Stream ist. // Oder, aber funktioniert anscheinend nicht überall und immer: std::cin.sync();Grüssli