C++ CPP将0x0A读取为字符串而不是十六进制

C++ CPP将0x0A读取为字符串而不是十六进制,c++,type-conversion,hex,C++,Type Conversion,Hex,我正在从数据库中获取一些值,这些值是逗号分隔的十六进制值(0x0A、0x01、0X0B)。我获取它们,用逗号分解它们,但当尝试使用0X0A作为十六进制值时,它将其视为字符串而不是十六进制数。我想用十六进制来键入它。您可以使用istringstream和std::hex将十六进制字符串转换为数值: std::istringstream stream("0x0A"); int val = 0; stream >> std::hex >> val; std::cout >

我正在从数据库中获取一些值,这些值是逗号分隔的十六进制值(0x0A、0x01、0X0B)。我获取它们,用逗号分解它们,但当尝试使用0X0A作为十六进制值时,它将其视为字符串而不是十六进制数。我想用十六进制来键入它。

您可以使用
istringstream
std::hex
将十六进制字符串转换为数值:

std::istringstream stream("0x0A");
int val = 0;
stream >> std::hex >> val;
std::cout >> val; // prints "10"

使用strtoul将字符串转换为数字本不需要将字符串从0A转换为0x0A它已经是0x0A了我只希望CPP将其作为十六进制值读取