尝试这个:
std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << (int)key[a];
}
std::string key_string = convert.str();
std::cout << key_string << std::endl;
该类ostringstream
就像一个字符串生成器。您可以将值附加到它,完成后,您可以调用它的.str()
方法来获取std::string
包含您放入其中的所有内容的 a。
您需要在将它们添加到之前将uint8_t
值转换为,因为如果不这样做,它将把它们视为字符。另一方面,如果它们确实代表字符,则需要删除演员表才能看到实际字符。int
ostringstream
(int)
编辑:如果您的数组包含 0x1F 0x1F 0x1F 并且您希望字符串为 1F1F1F,则可以使用std::uppercase
和std::hex
操纵器,如下所示:
std::ostringstream convert;
for (int a = 0; a < key_size_; a++) {
convert << std::uppercase << std::hex << (int)key[a];
}
如果你想回到十进制和小写,你需要使用std::nouppercase
and std::dec
。