C++如何将Hex Integer转换为String?

ton*_*gil -4 c++

可能重复:
如何在C++中将数字转换为字符串,反之亦然

在C++中,如何将十六进制整数转换为原始十六进制的十进制值的字符串表示?

假设我们有一个十六进制表示的整数a1a56(以十进制表示等于662102),并且您希望将其转换为字符串"662102"

你怎么解决这个问题?

ps:我建议一个功能性解决方案作为答案,随意拍下来(如果可能的话,礼貌地)

GWW*_*GWW 7

您可以使用字符串流:

int x = 0xa1a56;
std::stringstream ss;
ss << x;
cout << ss.str();
Run Code Online (Sandbox Code Playgroud)

或者,如果您更喜欢函数:

std::string convert_int(int n)
{
   std::stringstream ss;
   ss << n;
   return ss.str();
}
Run Code Online (Sandbox Code Playgroud)

编辑:确保你 #include <sstream>


das*_*ght 6

您可以将字符串流中的数字读取为十六进制,并将其作为十进制写回另一个字符串流:

int x;
istringstream iss("a1a56");
iss >> hex >> x;
ostringstream oss;
oss << x;
string s(oss.str());
Run Code Online (Sandbox Code Playgroud)

链接到ideone.