Hallo
Ich programmiere jetzt seid ca 2 Monaten mit C und habe folgendes
Problem:
Ich will eine Variable zwischen 1 und 6 als int in c einspeichern um
später damit weiter zu arbeiten. Wenn etwas anderes außer einer Zahl
zwischen 1 und 6 eingegeben wird soll eine Fehlermeldung erscheinen.
Wenn ich zahlen außerhalb des Rahmens eingebe funktioniert auch alles
super, nur wenn ein Buchstabe eingegeben wird, erscheint die
Fehlermeldung unendlich mal.
Ich hoffe jemand kann einem c Anfänger helfen.
Hier ein Ausschnitt des Codes:
Int a
do{
fflush(stdin);
scanf("%i", &a);
if(!(a<7 && a>0)){
printf("Ungültiger Wert!\n");
}
} while(!(a>0 && a<7));
Gast
#5651664
Allgemeiner Hinweis. Ein Buchstabe ist keine Zahl. Das Einlesen sollte viel allgemeiner formuliert werden z.B. als Zeichen mit anschließender Überprüfung.
Gast
#5651689
Schreib mal a>'0' && a<'7'
scanf ist so schlau, bei %i nur Ziffern zuzulassen.
Es können, wenn die Eingabe mit 0x beginnt, auch Hexziffern sein.
> Schreib mal a>'0' && a<'7'
Dann müsste er bei %i aber 48 eingeben
Gast
#5651695
Überprüfe einmal den Rückgabewert von scanf, der wird bei der Eingabe von einem Buchstaben 0 sein. Damit ist der Wert von a nicht gültig.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.