char* 文字列を long long (64 ビット) 整数に変換するにはどうすればよいですか?
MSVC および GCC コンパイラを使用しており、プラットフォームは Windows、Linux、および MAC OS です。
ありがとう。
char* 文字列を long long (64 ビット) 整数に変換するにはどうすればよいですか?
MSVC および GCC コンパイラを使用しており、プラットフォームは Windows、Linux、および MAC OS です。
ありがとう。
strtoullunsigned long long またはstrtollsigned long long に使用します。Unix (Linux、Mac OS X) では、man strtoullorと入力man strtollしてその説明を取得します。どちらも C99 標準の一部であるため、C をサポートするすべてのシステムで使用できるはずです。Linux の man ページには、それらの使用方法の例もあります。
をサポートするコンパイラを備えた 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;
long long int i;
if(sscanf(string, "%lld", &i) == 1) { ... }
boost::lexical_castおそらく最も単純です(コード内)。詳細については、 http://www.boost.org/doc/libs/1_47_0/libs/conversion/lexical_cast.htmを参照してください。または、 a を使用stringstreamして数値を解析します。
#include <stdlib.h>
char serial[1000];
long long var = _atoi64(serial);