cin.ignore() (Anfängerfrage)



  • Hallo alle zusammen,

    kann uns jemand erklären, woher ich weiß, wann der Befehl cin.ignore() (oder ähnliche Befehle) in einem Programm benötigt werden?

    Wir haben unterschiedliche Programme gesehen / geschrieben, bei denen über ein struct mehrere Eingaben zu z.B. verschiedenen Autos gesammelt werden.

    Nach der Aufforderung zu einigen Eingaben muss das cin.ignore()erfolgen, andere Eingaben benötigen das nicht. (In meinem Beispiel musste es nach Eingabe eines string erfolgen). In anderen Codebeispielen habe ich es schon nach einem unsigned short gesehen.
    Kann man das an irgendetwas fest machen oder hilft da nur ausprobieren und an den Stellen wo das Programm nicht wie gewünscht läuft nachbessern?

    Vielen Dank!


  • Mod

    cin.ignore() ignoriert buchstäblich ein Zeichen. Öfter sieht man cin.ignore(numeric_limits<streamsize>::max(), '\n') , welches alle Zeichen bis zum und inklusive des Zeilenumbruchs ignoriert, was vor e.g. weiteren Extraktionen oder einem cin.get(); sinnvoll ist.


Anmelden zum Antworten