Eingabe auf Datatype Gültigkeit überprüfen
-
Hallo! ich möchte dass, bei einer Eingabe die Typegültigkeit überprüft werden. Z.B, erwartet wird eine int, eingegeben wurde aber ein char oder string oder was auch immer. Wie kann das Programm den Fehler feststellen und dementsprechend neue Eingabe anfordern?
Dank im Voraus.
-
Details zu verwendem Compiler:
:~$ gcc -v
Using built-in specs.
Target: i486-linux-gnu
Configured with: ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.1.3 --program-suffix=-4.1 --enable-__cxa_atexit --enable-clocale=gnu --enable-libstdcxx-debug --enable-mpfr --enable-checking=release i486-linux-gnu
Thread model: posix
gcc version 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)
-
int check = scanf("%c %d",&a,&b); while(check != 2){ printf("falsche eingabe. nochmal\n"); check = scanf("%c %d",&a,&b); }
scanf gibt die anzahl der richtig eingelesenen werte zurück.
richtig heisst: die eingabe stimmt per datentyp mit dem überein, was er erwartet (%c, %d)edit: ich habe gerade gemerkt, das funktioniert nur wenn du die zu erwartende eingabe nicht machst, und NICHT wenn du sie AUCH machst.
d.h. in obigem beispiel wäre die eingabe "3 9" falsch, da er keinen char gefunden hat.
aber "hallo 2" wäre okay, weil er das 'h' findet.
also chars von strings zu unterscheiden...weiss grad nich, da musst du jetzt diejenigen fragen, die es wirklich können
mfg
-
danke dir trotzdem, hat mir schon ein stück weiter geholfen