C ++ добавляет неподписанный символ к wstring

Я хочу добавить неподписанный символ к wstring по причинам отладки.

Однако я не могу найти функцию для преобразования неподписанного символа в строку wstring, поэтому я не могу добавить его.

Редактировать:
Решения, опубликованные до сих пор, на самом деле не делают то, что мне нужно.
Я хочу преобразовать 0 в «0».
Решения до сих пор преобразуют 0 в символ 0, но не в строку «0».

Кто-нибудь может помочь?

Спасибо.

unsigned char SomeValue;
wstring sDebug;

sDebug.append(SomeValue);

4

Решение

Правильный вызов для добавления символа в строку (или в этом случае wchar_t к строке wst)

sDebug.push_back(SomeValue);

Документация здесь.

Чтобы расширить свой символ до wchar_t, вы также можете использовать станд :: btowc который будет расширяться в соответствии с вашим текущим языком.

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

Другие решения

Просто бросьте свой неподписанный символ на символ:

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

И если вы хотите использовать оператор + попробуйте это:

sDebug+= static_cast<char>(SomeValue);

Или даже это:

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

Там перегрузка append это также занимает количество раз, чтобы добавить данный символ:

sDebug.append(1, SomeValue);

Тем не менее, это приведет к преобразованию между unsigned char а также wchar_t, Возможно, вы хотите SomeValue быть wchar_t,

0

У wstring есть конструктор, который принимает символ. Это создаст строку из символа, который вы можете затем добавить.

0
По вопросам рекламы [email protected]