Wie kann ich überprüfen ob eine Eingabe numerisch ist?
-
Hallo ersteinmal!
Ich habe eine Eingabeaufforderung, die einen numerischen Wert fordert.
Wie kann ich nun überprüfen ob dieser Wert numerisch ist, denn bei sonstigen Zeichen würde das programm abschmieren.Gibt es eine Funktion in irgendeiner Biblithek die das übernimmt?
Gruß
JoeF
-
#include <stdlib.h> char* string = "1234"; char* err; /* err zeigt auf die stelle in string, die nicht mehr * als zahl interpretiert werden kann. * ist err '\0', so ist der string komplett in eine * zahl umgewandelt worden */ long zahl = strtol( string, &err, 10 ); /* 10 ist die basis des zahlensystems */ if ( *err == '\0' ) /* zahl */ else /* keine zahl */
es gibt auch noch
strtod( char* string, char** err );
fuer gleitpunktzahlen.
-
Also bei mir sieht es so aus das ich die Zahl bislang nicht als String eingelsen habe, sondern direkt als integer.
Gibt es dafür auch eine Möglichkeit der Überprüfung auf Numerisch?
Gruß
JoeF
-
dann liest du wahrscheinlich mit scanf ein, oder?
scanf liefert die anzahl der erfolgreich eingelesenen
argumente und EOF, falls ein fehler auftritt
(bevor das erste argument eingelsenen wurde).ret = scanf( "%d", &i ); if ( ret == 0 ) /* fehler */
-
super funktioniert!
Warum immer so kompliziert denken wenn es auch einfach geht!
Gruß
joeF