Frage

Wie kann ich eine char * -String in eine lange lange (64-Bit) Ganzzahl konvertieren?

Ich verwende MSVC- und GCC-Compiler und meine Plattformen sind Windows, Linux und MAC OS.

Danke.

War es hilfreich?

Lösung

Verwenden Sie strtoull für vorzeichenlose lange lange oder strtoll für vorzeichenlose lange lange.Geben Sie unter Unix (Linux, Mac OS X) man strtoull oder man strtoll ein, um die Beschreibung zu erhalten.Da beide Teil des C99-Standards sind, sollten sie auf jedem System verfügbar sein, das C unterstützt. Die Linux-Manpages auch Beispiele für deren Verwendung haben .

Andere Tipps

Für C ++ mit einem Compiler, der long long int unterstützt, würde ich ein std::istringstream-Objekt verwenden.Zum Beispiel:

char* number_string;
//...code that initializes number_string

std::istringstream input_stream(number_string);
long long int i64_bit_type;
input_stream >> i64_bit_type;

long long int i;

if(sscanf(string, "%lld", &i) == 1) { ... }

boost::lexical_cast ist wahrscheinlich der einfachste (im Code).Siehe http://www.boost.org/doc/libs/1_47_0 / libs / convert / lexical_cast.htm für weitere Informationen.Verwenden Sie alternativ einen stringstream, um den numerischen Wert zu analysieren.

 #include <stdlib.h>

 char serial[1000];

 long long var = _atoi64(serial);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top