Pregunta

¿Cómo puedo convertir de un char* cadena a long long (64-bit) entero?

Yo uso MSVC y el compilador GCC y mis plataformas Windows, Linux y MAC OS.

Gracias.

¿Fue útil?

Solución

Utilice strtoull para unsigned long long o strtoll paraigned long long.En cualquier Unix (Linux, Mac OS X), escriba man strtoull o man strtoll para obtener su descripción.Dado que ambos son parte del estándar C99, deberían estar disponibles en cualquier sistema que admita C. Las páginas de manual de Linux también tener ejemplos sobre cómo usarlos .

Otros consejos

Para C ++ con un compilador que admita long long int, usaría un objeto std::istringstream.Por ejemplo:

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 es probablemente el más simple (en el código).Ver http://www.boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm para obtener más información.Alternativamente, el uso de un stringstream para analizar el valor numérico.

 #include <stdlib.h>

 char serial[1000];

 long long var = _atoi64(serial);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top