Überprüfung ob Eingabe korrekt ist
-
Hallo,
wie kann ich überprüfen, ob eine Eingabe mit scanf() z.b. ein integer Wert ist und bei einer falschen EIngabe einen Fehler ausgibt.
danke
lg#include <stdio.h> int main (void) { int d; scanf("%d", &d); if ??? printf("Fehler!"); else printf("%d", d); return(0); }
-
Reicht es dir vielleicht schon den Rückgabewert von scanf() zu überprüfen?
PS: Es gibt spezielle
Tags.
-
Hallo,
scanf(); gibt die Anzahl der erfolgreich gelesen "Segmente" zurück.Sprich falls %d gelesen werden konnte, wird 1 zurück geben, sonst 0.
Dies gilt auch für mehrer Abfragen in einem Scanf
-
stimmt scanf() lgibt einen Wert zurück (0 oder 1). Aber wie kann ich dann auf den Wert zugreifen? damit ich den in eine if-Anweisung einbauen kann.
-
antelucem schrieb:
stimmt scanf() lgibt einen Wert zurück (0 oder 1). Aber wie kann ich dann auf den Wert zugreifen? damit ich den in eine if-Anweisung einbauen kann.
so beispielsweise:
int a,check; ... ... ... check=scanf("%d",&a); if(check==0) ... else ... ... ...
-
... oder
if (scanf("%d", &a) == 0) { }
-
http://www-ccs.ucsd.edu/c/stdlib.html#strtol
int ires; char *pres; ires = strtol(derstring, &pres, 0); /* basis 0 bedeutet, man kann verschiedene basen eingeben */ if (pres == derstring) puts("fehler bei der eingabe!"); else printf("zahl: %d, restlicher string: %s", ires, pres);