Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

LsFan

Frischling

  • »LsFan« ist der Autor dieses Themas

Beiträge: 29

Beruf: Der Böse Admin sein xD

  • Private Nachricht senden

1

30.06.2013, 11:55

While(true) Schleife wartet nicht auf Eingabe???

Hallo nochmal,



ich habe in einem Programm eine while(true) Schleife in der ich erst was mit cout << schreib und dann will ich eine int Zahlt mit cin >> eingeben ... das Problem: Die schleife wartet nicht bis ich was eingegeben habe sondern läuft gleich weiter ... :(



wie bringe ich sie dazu, dass sie dann immer wartet bis ich die Zahl eingegeben hab???



lg LsFan :)
(\ /) | Dies ist Hase.
(^.^) | <-- Bitte kopiere Hase in deine Signatur
(*_*) | und hilf ihm, die Weltherrschaft an sich zu reißen.

2

30.06.2013, 12:18

char a;
cin >> a;

Das wartet eigentlich auch schon ohne Schleife auf eine Eingabe. Wenn vorher schon was im Buffer steht wird das aber genommen und das Programm wartet nicht. Mit cin.clear() kannst du den Buffer löschen, danach ist er auf jeden Fall leer und das Programm sollte warten.

Wenns nicht funktioniert liegt der Fehler woanders. Kannst du dann den Code posten?

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

3

30.06.2013, 17:06

Vermutlich versuchst du mit cin zuvor einmal einen Wert einzulesen, behandelst dabei aber nicht den Fall, dass dies fehlschlägt. In dem Fall wird nämlich das failbit des Stream gesetzt. So lange dieses gesetzt ist, schlagen sämtliche Operationen auf dem Stream fehl. Mit clear() setzt du dieses Flag zurück.

Werbeanzeige