Zeichenkonvertierung
-
Hi,
Wie kann ich 100% sicherstellen, dass eine Zahl über die Kommandozeile meinem Programm übergeben wurde, wenn ich folgende Funktionen verwende:
strtol(), strtoul(), strtod() ?viele grüße
-
http://cplusplus.com/reference/clibrary/cstdlib/strtol/
http://cplusplus.com/reference/clibrary/cstdlib/strtoul/
http://cplusplus.com/reference/clibrary/cstdlib/strtod/
-
dafür gibt es ja den endptr. Siehe man: strtol(3)
char const *str = "1234"; char *endptr; long l = strtol(str, &endptr, 10); if(*str != '\0' && *endptr == '\0') { // str enthält nur eine Zahl } else { // was anderes }
-
Das reicht so nicht, Über/Unterlaufsprüfung, die strtol im Gegensatz zu scanf anbietet, wird ignoriert, besser: