2

如何将 char* 字符串转换为 long long(64 位)整数?

我使用 MSVC 和 GCC 编译器,我的平台是 Windows、Linux 和 MAC OS。

谢谢。

4

5 回答 5

3

用于strtoullunsigned long long 或strtoll有符号 long long。在任何 Unix(Linux、Mac OS X)上,键入man strtoullman strtoll获取其描述。由于两者都是 C99 标准的一部分,因此它们应该可以在任何支持 C 的系统上使用。Linux 手册页也有关于如何使用它们的示例

于 2011-09-12T13:18:20.360 回答
3

对于带有支持的编译器的 C++ long long int,我会使用一个std::istringstream对象。例如:

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;
于 2011-09-12T13:28:39.733 回答
2
long long int i;

if(sscanf(string, "%lld", &i) == 1) { ... }
于 2011-09-12T13:21:22.510 回答
0

boost::lexical_cast可能是最简单的(在代码中)。有关更多信息,请参见http://www.boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htm。或者使用 astringstream解析出数值。

于 2011-09-12T13:32:36.893 回答
0
 #include <stdlib.h>

 char serial[1000];

 long long var = _atoi64(serial);
于 2016-06-09T15:40:23.070 回答