Я хочу добавить неподписанный символ к wstring по причинам отладки.
Однако я не могу найти функцию для преобразования неподписанного символа в строку wstring, поэтому я не могу добавить его.
Редактировать:
Решения, опубликованные до сих пор, на самом деле не делают то, что мне нужно.
Я хочу преобразовать 0 в «0».
Решения до сих пор преобразуют 0 в символ 0, но не в строку «0».
Кто-нибудь может помочь?
Спасибо.
unsigned char SomeValue;
wstring sDebug;
sDebug.append(SomeValue);
Правильный вызов для добавления символа в строку (или в этом случае wchar_t к строке wst)
sDebug.push_back(SomeValue);
Чтобы расширить свой символ до wchar_t, вы также можете использовать станд :: btowc который будет расширяться в соответствии с вашим текущим языком.
sDebug.push_back(std::btowc(SomeValue));
Просто бросьте свой неподписанный символ на символ:
sDebug.append(1, static_cast<char>(SomeValue));
И если вы хотите использовать оператор + попробуйте это:
sDebug+= static_cast<char>(SomeValue);
Или даже это:
sDebug+=boost::numeric_cast<char>(SomeValue);
Там перегрузка append
это также занимает количество раз, чтобы добавить данный символ:
sDebug.append(1, SomeValue);
Тем не менее, это приведет к преобразованию между unsigned char
а также wchar_t
, Возможно, вы хотите SomeValue
быть wchar_t
,
У wstring есть конструктор, который принимает символ. Это создаст строку из символа, который вы можете затем добавить.