Anfänger scanf-Probleme
-
Hallo ,
ich versuche den Programmbenutzer zu einer Eingabe aufzufordern. Er soll entweder ein S,B oder G eingeben.
printf("Bitte Buchstaben für Ihr Mensa-Essen eingeben. (S,B,G)!\n");
Nun meine Frage wie kann ich es umsetzen, dass wenn eine andere Eingabe getätigt wird, sich das Programm beendet?
-
Indem du (als Programmierer) das so programmierst.
Zeichen einlesen, überprüfen ob es es un-/gültig ist, entsprechend reagieren.
Zum vorzeitigen Beenden eines Programms gibt es die Funktion
exit()
.
Es ist aber freundlicher, dem User mal ein paar Fehleingaben zu ermöglichen.
-
[Hallo!
Man kann für scanf sogenannte Positiv- und Negativ-Listen vergeben:
Bei
char eingabe[100]; Bei scanf("%[1234567890+-*/=]", eingabe);
werden nur Zeichen eingelesen, die in den rechteckigen Klammern stehen.
Beim ersten "falschen Zeichen" werden alle folgenden Zeichen ignoriert.Bei
scanf("%[^\n]", eingabe);
Werden alle Zeichen akzeptiert, außer das newline-Zeichen, also die Enter-Taste.
Mit diesem Beispiel kann man sogar Zeilen mit Leerzeichen einlesen, was normalerweise nicht geht.