出于调试原因,我想将一个unsigned char附加到wstring。
但是,我没有找到将unsigned char转换为wstring的函数,所以我无法追加它。
编辑: 到目前为止发布的解决方案并不能真正满足我的需求。 我想将0转换为“0”。 到目前为止,解决方案将0转换为0字符,但不转换为“0”字符串。
有人可以帮忙吗?
谢谢。
unsigned char SomeValue;
wstring sDebug;
sDebug.append(SomeValue);
答案 0 :(得分:12)
将字符串附加到字符串的正确调用(或者在这种情况下,将wchar_t附加到wstring)
sDebug.push_back(SomeValue);
要将您的字符扩展为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 char
和wchar_t
之间的转换。也许您希望SomeValue
成为wchar_t
。
答案 3 :(得分:0)
wstring有一个带char的构造函数。这将从char创建一个wstring,然后你可以追加它。