将unsigned char添加到wstring后

C++ append unsigned char to wstring

本文关键字:wstring 添加 unsigned char      更新时间:2023-10-16

出于调试原因,我想在wstring中添加一个无符号字符。

但是,我没有找到将unsigned char转换为wstring的函数,所以我不能附加它。

编辑:到目前为止张贴的解决方案并没有真正做到我所需要的。我想把0转换成0。目前的解决方案将0转换为0字符,但不转换为"0"字符串。

有人能帮忙吗?

谢谢。

unsigned char SomeValue;
wstring sDebug;
sDebug.append(SomeValue);

将char添加到字符串(或者在本例中,将wchar_t添加到wstring)的正确调用是

sDebug.push_back(SomeValue);

文档。

要将字符加宽为wchar_t,还可以使用std::btowc,它将根据您当前的语言环境加宽。

sDebug.push_back(std::btowc(SomeValue));

将unsigned char转换为char:

sDebug.append(1, static_cast<char>(SomeValue));

如果你想用operator+试试这个:

sDebug+= static_cast<char>(SomeValue);

甚至这个

 sDebug+=boost::numeric_cast<char>(SomeValue);

append有一个过载,它也需要添加给定字符的次数:

sDebug.append(1, SomeValue);

然而,这将导致unsigned charwchar_t之间的转换。也许您希望SomeValue成为wchar_t

wstring有一个接受char类型的构造函数。这将从一个char创建一个wstring,然后您可以将其追加。