c++ - 如何获得显示字节十六进制值的字符串?

标签 c++ string byte tostring

<分区>

我是 C++ 的新手,我有一个简单而愚蠢的问题,我希望有人能帮助我! 我有一个字节,例如:

uint8_t MyByte = 0x0C;

并且我想将其转换为对应于十六进制 MyByte 值的字符串,在本例中为 "0C"。 如果我尝试:

std::string MyString = std::to_string(MyByte);

我将获得:MyString = "12";我想获取 MyString = "0C" ,这是相应的十六进制值。 可能吗?

谢谢!

编辑: 我知道所提供的链接上也有类似的问题,但这对我来说是不对的。事实上,如果我尝试:

std::stringstream stream;
stream << std::hex << MyByte;
std::string MyString( stream.str() );

MyString 没有按预期显示我。

我刚刚尝试了这个解决方案,它似乎有效:

std::stringstream stream;
stream << std::hex << (int)MyByte; // cast needed
std::string MyString( stream.str() );
std::transform(strBcc.begin(), strBcc.end(),strBcc.begin(), ::toupper);

最佳答案

您可以使用 std::ostringstreamstd::hex:

std::ostringstream oss;
oss << std::hex << (int)MyByte;

获取字符串使用

std::string MyString = oss.str();

关于c++ - 如何获得显示字节十六进制值的字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35134543/

相关文章:

c++ - 删除数组成员的更好方法是什么?

c++ - 如何在C++中将枚举插入另一个枚举

c - strtol() 和 atol() 不转换大于 9 位的字符串

javascript - 如何在单独的行中打印每个单词。除第一个单词外,每个单词都大写

Java byte[] 到/从 String 转换

c++ - 如何有效地查找大型 vector 中的元素

java - 在 Java 中将字节转换为长度为 4 的 boolean 数组

mysql - 如何获取 MySQL 数据库的真实大小?

比较 unsigned char 中的 byte 和 hex,测试文件是否为 ELF 文件

c++ - 创建一个方法来使用模板迭代自定义类的任何容器?