(ANSI C) Falsche Eingaben mit scanf abfangen



  • Hallo,

    ich hoffe ihr könnt mir helfen.
    Wie kann ich mit scanf falsche Eingaben abfangen? Ich meine, wenn z.B. der Eingabewert ein Integer sein soll, der Anwender aber ein char eingibt. Folgendermaßen habe ich es versucht:

    int Anzahl;
        do
        {
          short Eingabe;
          printf("Bitte Spieleranzahl eingeben : ");
          Eingabe = scanf("%i", &Anzahl);
          clrscr();
          if (Eingabe == 0)
            Anzahl = 5;
        }while ((Anzahl < 1) || (Anzahl > 4));
    

    Leider wird bei dieser Methode die Schleife durchlaufen, ohne bei scanf auf die Eingabe zu warten. Diese Schleife ist also eine Endlosschleife, da die Variable "Eingabe" immer auf 0 bleibt.

    Vielen Dank für eure Mühe!



  • Warum postet eigentlich jeder Anfänger jedes Standard-C-Problem im C++-Forum? Wohin mit meiner Frage?



  • Hallo,
    bitte vor dem Posten die Suchfunktion benutzen.

    Am 28.03.2003 hatten wir einen Beitrag "Falscheingaben mit scanf abfangen"

    Und verschoben nach ANSI-C.

    [ Dieser Beitrag wurde am 07.04.2003 um 10:27 Uhr von HumeSikkins editiert. ]


Anmelden zum Antworten