#include
<cstdlib>
long int strtol (const char *string, char **endptr, int basis)
Konvertiert string
in eine lange Ganzzahl zur basis
=2..36
und markiert mit endptr
das Zeichen hinter der Zahl.
string | C-Zeichenkette |
endptr | Zeiger auf Zeiger hinter das Ende der Zahl |
basis | Ganzzahlbasis |
Rückgabewert: Ganzzahl. Bei Fehlern wird 0 geliefert.
Liegt die Zahl außerhalb des erlaubten Wertebereichs,
wird der dieser Zahl nächstgelegene Grenzwert
(LONG_MIN
bzw. LONG_MAX
) geliefert und
errno auf ERANGE
gesetzt.
#include <cstdlib> #include <iostream> int main() { long i; const char *s = " 123.4567abcdefgh"; cout << s << '\n'; char *ende; i = std::strtol(s, &ende, 10); std::cout.width(1+ (ende-s)); std::cout << "^" << " bis hier gelesene Zahl: " << i << '\n'; }