2

char* 文字列を long long (64 ビット) 整数に変換するにはどうすればよいですか?

MSVC および GCC コンパイラを使用しており、プラットフォームは Windows、Linux、および MAC OS です。

ありがとう。

4

5 に答える 5

3

strtoullunsigned long long またはstrtollsigned long long に使用します。Unix (Linux、Mac OS X) では、man strtoullorと入力man strtollしてその説明を取得します。どちらも C99 標準の一部であるため、C をサポートするすべてのシステムで使用できるはずです。Linux の man ページには、それらの使用方法の例もあります

于 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を参照してください。または、 a を使用stringstreamして数値を解析します。

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

 char serial[1000];

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