我有一个std::string
和一个int
。我想将整数的ASCII(字符串文字)十六进制表示连接到std::string
。
例如:
std::string msg = "Your Id Number is: ";
unsigned int num = 0xdeadc0de; //3735929054
所需字符串:
std::string output = "Your Id Number is: 0xdeadc0de";
通常情况下,我只是使用printf,但我不能用std :: string(我可以吗?)
有关如何执行此操作的任何建议吗?
答案 0 :(得分:34)
使用字符串流。您可以将其用作任何其他输出流,因此您可以同等地插入std::hex
。然后提取它的stringstream::str()
函数。
std::stringstream ss;
ss << "your id is " << std::hex << 0x0daffa0;
const std::string s = ss.str();
答案 1 :(得分:5)
根据xtofl的回答,您正在寻找的标题是<iomanip>
。这是std::hex
,std::dec
和std::oct
生存的地方,所有这些都可以定向到流中,以便在它们之后发送到流中的任何内容都转换为该基础。
答案 2 :(得分:0)
我相信'string'只向前声明std :: stringstream。所以你还需要包括:
#include <sstream>