getline
-
Tobi3000 schrieb:
x ist ja wahrscheinlich = 0,da du ja keinen Wert zugewiesen hast und wieso übergibst du cin?
Er versucht eine ganze Zeile bis zum nächsten newline einzulesen. x ist vermutlich ein std::string. cin übergibt er, weil getline nunmal so funktioniert.
Ich vermute, daß da noch ein newline im cin drinsteht.
Versuch mal sowas wie std::cin.ignore(std::cin.rdbuf()->in_avail()); davor, das nimmt eventuell noch vorhandene Eingaben weg.
-
danke für eure antworten .. allerdings funktioniert die cin.ignore nicht
-
Hm, was passiert denn, wenn Du ein neues Projekt anlegst und mal nur das machst, ohne vorher irgendwas anderes zu tun. Funktioniert es dann?
-
tjo .. so gehts xD
-
Also steht vorher noch irgendwas in dem stream drin. Das mußte rausmachen. Geht normalerweise mit diesem häßlichen Konstrukt, das ich da gepostet hatte. Möglicherweise muß noch ein cin.clear() oder sowas davor.
-
klappt nich ... ne idee wo ich mir sowas herhol ?
-
Hallo Bonzy,
nach Deiner Fehlerbeschreibung bin ich mir zwar nicht ganz sicher, aber wenn Du vor einem Visual Studio 6 sitzt, dann ist Dein Problem hier beschrieben.
Gruß
Werner
-
nee ich arbeite mit dev-c++
console application

-
probier mal std::cin.sync()
-
geht auch nit ^^
-
Hi!
Naja, du musst das cin.clear() schon drin lassen:
std::cin.clear(); std::cin.sync();oder:
std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail());clear() löscht die Fehlerflags, rdbuf()->in_avail() guckt wieviel zeichen im Puffer sind und ignore wirft diese dann weg. sync() leert auch den Puffer. Also eine von beiden Methoden sollte eigentlich immer funktionieren.
Greetz
-
hmm .. jetz klappts

hatte zwar cin.clear() mit drin aber wahrscheinlich irgendwas falsch gemacht .. naja egal jetz gehts ja
thx
