0
我得到了一個地址示例:0x003533,它是一個字符串,但要使用它,我需要它是一個長,但我不知道該怎麼做:S有人有解決方案?C++地址字符串 - >長
so string:「0x003533」to long 0x003533 ??
我得到了一個地址示例:0x003533,它是一個字符串,但要使用它,我需要它是一個長,但我不知道該怎麼做:S有人有解決方案?C++地址字符串 - >長
so string:「0x003533」to long 0x003533 ??
使用strtol()爲:
#include <cstdlib> #include <string> // ... { // ... // Assume str is an std::string containing the value long value = strtol(str.c_str(),0,0); // ... } // ...
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main() {
string s("0x003533");
long x;
istringstream(s) >> hex >> x;
cout << hex << x << endl; // prints 3533
cout << dec << x << endl; // prints 13619
}
編輯:
由於Potatocorn在評論中說,你還可以使用boost::lexical_cast
如下圖所示:
long x = 0L;
try {
x = lexical_cast<long>("0x003533");
}
catch(bad_lexical_cast const & blc) {
// handle the exception
}
AKA '的boost :: lexical_cast' – Potatoswatter 2010-04-11 13:08:12