C ++将unsigned char附加到wstring

时间:2013-03-28 18:03:20

标签: c++ append wstring

出于调试原因,我想将一个unsigned char附加到wstring。

但是,我没有找到将unsigned char转换为wstring的函数,所以我无法追加它。

编辑: 到目前为止发布的解决方案并不能真正满足我的需求。 我想将0转换为“0”。 到目前为止,解决方案将0转换为0字符,但不转换为“0”字符串。

有人可以帮忙吗?

谢谢。

unsigned char SomeValue;
wstring sDebug;

sDebug.append(SomeValue);

4 个答案:

答案 0 :(得分:12)

将字符串附加到字符串的正确调用(或者在这种情况下,将wchar_t附加到wstring)

sDebug.push_back(SomeValue);

Documentation here

要将您的字符扩展为wchar_t,您还可以使用std::btowc根据您当前的区域设置进行扩展。

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

答案 1 :(得分:3)

只需将unsigned char转换为char:

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

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

sDebug+= static_cast<char>(SomeValue);

甚至这个:

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

答案 2 :(得分:0)

append的重载也需要追加给定字符的次数:

sDebug.append(1, SomeValue);

但是,这会导致unsigned charwchar_t之间的转换。也许您希望SomeValue成为wchar_t

答案 3 :(得分:0)

wstring有一个带char的构造函数。这将从char创建一个wstring,然后你可以追加它。