我有一个字符串:
string s = "0x10"
我想找到一种方法将其转换为具有相同值的int
,即:
int x = 0x10
使用"0x10"
时,我从以下代码中获取字符串cout << s
:
:
std::stringstream stream;
stream << "0x" << hex << setw(2) << setfill('0') << int(h) << endl;
string s = stream.str();
如果使用int h = 16
(十六进制为0x10
),我会得到正确的结果
有没有办法做到这一点?
答案 0 :(得分:-4)
与你所拥有的相反
istringstream iss(s);
int x;
iss >> hex >> x;
或std::stoi
好像你可能很困惑 - 说你想在int中使用0x10而不是16。这就是你如何将int转换为字符串的问题。 int在内存中始终为0b00010000