Cin-Eingabe abbrechen
-
Hallo Leute ich möchte ein C++ Programm schreiben in dem ich sowas wie eine
Befehlszeile habe und möchte das wenn ich Enter drücke eine neue Befehlszeile kommt.Hier mal ein hypothetischer Code
#include <iostream> #include <stdio.h> #include <conio.h> using namespace std; char eingabe[255]; int main() { marke: cout << "Befehl @ "; cin >> eingabe; swtich (eingabe[0]) { case 'a': cout << "BLA\n"; break; case 'b': cout << "BLA BLA\n"; break; default: cout << "Autsch! Falscher Befehl!\n" goto marke; } return 0; }
So wenn ich jetzt bei der Eingabe bin und nichts eingebe, sondern Enter drücke passiert nichts. Ich will sozusagen ,das das Programm wenn ich nichts eingebe auf marke zurück hüpft.
Ich hoffe ihr könnt mir Lösungsvorschläge geben.
Vielen Dank im Vorraus
-
der Eingabe-Operator wartet solange, bis er etwas verwertbares vor die Nase gesetzt bekommt - und überliest dabei Whitespaces. Wenn du wirklich jede Eingabezeile in die Hand bekommen willst, solltest du dir mal getline() ansehen.
PS: Und tu dir selber einen Gefallen und verwende (a) std::string für Zeichenketten und (b) Schleifen (while) anstelle von goto-Gehüpfe.
-
jo danke
ich schau mir getline() mal an
PS.: mit dem while statt goto hast du recht is veraltet
-