Was tut cin.clear(); ??



  • also. ich weiss scon wann man diese methode benutzt, doch wieso???
    was tut sie??
    überall lese ich sie verändert den zustand, den die methode .fail() zurückgeliefert hat oder so ähnlich...
    heisst das:

    wenn cin.fail() true ist, ist cin fehlerhaft, und man kann nich mehr damit weiterarbeiten, und wenn dann clear aufgerufen wird, wird die eingabe wieder gültig gemacht, damit man sie wieder beareiten kann oder wie?

    und dann halt cin.ignore();

    ...
    thx! 🙂 🙂



  • cin.clear() löscht alle Fehler-Bits die der Stream haben könnte. Sollte zB ein Integer geparst werden (int i; cin >> i; ) und keiner kommen (zB weil Buchstaben eingegeben wurden) setzt der Stream ein Fehler-Bit.

    Wurde ein Fehler-Bit gesetzt kann nicht mehr eingelesen werden. Deswegen benützt die Funktion wait() aus der FAQ cin.clear() um sicherzugehen, dass die Eingabe auch wirklich stattfindet.

    cin.ignore(parameter) wird benützt um parameter Zeichen im Stream zu ignorieren. Ist der Stream leer und eine Eingabe findet statt wird wieder etwas von der Konsole gelesen. Die Funktion wait() aus der FAQ benützt cin.ignore() um alle Zeichen im Stream zu ignorieren und so sicherzugehen, dass auch wirklich eine Eingabe auf der Konsole stattfindet.

    MfG SideWinder


Anmelden zum Antworten