Hallo Leute! Ich bin gerade am Experimentieren mit. std::cin>>ganzezahl; und std::getline(std::cin,zeichenkette); Das Problem, wenn diese beide Zeilen untereinanderstehen, dann kann ich zwar die Zahl einlesen, aber über getline springt mir das Programm drüber. Wenn ich jedoch die Eingabe der Variable "ganzezahl" herauslösche, dann kann ich die "zeichenkette" eingeben. Wie kann ich es anstellen, dass ich beide Befehle untereinander verwenden kann, ohne, dass der zweite ignoriert wird. Vielen Dank, LG Martin
Martin schrieb: > Hallo Leute! > > Ich bin gerade am Experimentieren mit. > std::cin>>ganzezahl; > und > std::getline(std::cin,zeichenkette); > > Das Problem, wenn diese beide Zeilen untereinanderstehen, dann kann ich > zwar die Zahl einlesen, aber über getline springt mir das Programm > drüber. Was hast du als menschlicher Benutzer gemacht, als du die Zahl eingegeben hast. Du hast gedrückt: 5 7 4 und dann "Return" um anzuzeigen, dass die Zahleneingabe beendet ist. cin >> zahl; hat sich die Ziffern 5 7 4 aus dem Einagbestrom geholt um daraus deine Zahl zusammenzusetzen. Aber was ist mit dem "Return"? Der wartet immer noch im Eingabestrom, bis ihn jemand abholt und etwas sinnvolles damit macht. Zb der getline Der sieht den "Return" im Eingabestrom und wertet das als: fertige Eingabe - ein Leerstring wurde eingegeben. > Wie kann ich es anstellen, dass ich beide Befehle untereinander > verwenden kann, ohne, dass der zweite ignoriert wird. Er wird nicht ignoriert. Du musst genauer beobachten, was du eingibst bzw. welche Zeichen du deinem Programm zur Verarbeitung vorwirfst. :-) Sieh dir mal die ignore Funktion von Input Streams an. Damit kannst du dein Problem sauber lösen.
Eigentlich hätte ich von dir jetzt als Antwort erwartet, er solle statt der Zahl die Zeile einlesen und dann daraus erst die Zahl. :-)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.