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.


Anmelden zum Antworten