CyberDemon Geschrieben 22. November 2002 Geschrieben 22. November 2002 Hi C++ Cracks! Ich habe zwei Funtionen, die Werte einlesen. Nach dem ich die erste Eingabe mit ENTER abgeschlossen habe, wird die darauffolgende Eingabefunktion gar nicht aufgerufen. In der Ausgabe der letzteren Funktion steht dann auch nichts drin. Wenn ich die erste Funktion lösche, funktioniert die zweite einwandfrei. Codeauszug: void Daten::SetPlz() { int p=0; cout<<"Bitte PLZ eingeben: "; cin>>plz; if(p <10000 || p > 99999) { while(p <10000 || p > 99999) { cout<<"\nFEHLER !!! Falsche PLZ!\n"; cout<<"Bitte neu eingeben: "; cin>>p; } plz = p; } plz = p; } int Daten::GetPlz() { return plz; } void Daten::SetOrt() // Diese Funktion rasselt durch { cout<<"Bitte Ort eingeben: "; cin.getline(ort,19); } string Daten::GetOrt() { return ort; // hier wird nichts zurückgegeben } Für ein detailiertes Beispiel und/oder Erklärung wäre ich sehr dankbar.
Guybrush Threepwood Geschrieben 22. November 2002 Geschrieben 22. November 2002 Hi, also bei scanf() hat immer fflush(stdin) geholfen, wie das bei cin ist weiß ich nicht, müßte aber eigentlich auch klappen. Schreib einfach nachdem du das erste mal einließt "fflush(stdin);" Gruß Guybrush
vinc Geschrieben 27. November 2002 Geschrieben 27. November 2002 für cin gibt es die methode ignore (), d.h. nach cin >> p; ein cin.ignore (); dadurch wird das return, das mit cin >> p; nicht aus dem puffer entfernt wurde, eliminiert. ansonsten wird das return sofort in der zweiten funktion verwendet und somit ist eine eingabe nicht mehr möglich. :eek:
CyberDemon Geschrieben 27. November 2002 Autor Geschrieben 27. November 2002 Genau danach habe ich gesucht. Funktioniert perfekt! :marine
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden