我想在C++中将一个十六进制字符串转换成十进制数字(整数),并尝试了以下方法:
但它返回了
std::wstringstream SS;
SS << std::dec << stol(L"0xBAD") << endl;
但它返回了
0
而不是2989
。std::wstringstream SS;
SS << std::dec << reinterpret_cast<LONG>(L"0xBAD") << endl;
但是它返回的是-425771592
而不是2989
。
但是,当我像下面这样使用时,它正常工作并按预期给出2989
。
std::wstringstream SS;
SS << std::dec << 0xBAD << endl;
但我想输入一个字符串,并将2989
作为输出,而不是像0xBAD
这样的整数输入。例如,我想输入"0xBAD"
并将其强制转换为整数,然后转换为十进制数。
提前感谢。
base
。 - O'Neilstol(L"0xBAD")
为什么会起作用?在那一行上你有收到编译器警告吗? - n. m.