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.