/ / C ++ добавете неподписан char към wstring - c ++, append, wstring

C ++ прибавя неподписан char към wstring - c ++, append, wstring

Искам да добави неподписан знак към wstrring за причини за отстраняване на грешки.

Не намирам обаче функция за преобразуване на неподписания знак в wstring, така че не мога да го приложа.

Редактиране: Решенията, публикувани досега, наистина не правят това, от което се нуждая. Искам да преобразувам 0 в "0". Решенията досега преобразуват 0 до символ 0, но не до "0" низ.

Може ли някой да помогне?

Благодаря ти.

unsigned char SomeValue;
wstring sDebug;

sDebug.append(SomeValue);

Отговори:

12 за отговор № 1

Правилното обаждане за добавяне на знак към низ (или в този случай, wchar_t към wstring) е

sDebug.push_back(SomeValue);

Документация тук.

За да разширите своя char към wchar_t, можете също да използвате STD :: btowc което ще се разшири според текущия ви локал.

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

3 за отговор № 2

Просто прехвърлете неподписания си знак на char:

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

И ако искате да използвате оператор + опитайте това:

sDebug+= static_cast<char>(SomeValue);

Или дори това:

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

0 за отговор № 3

Има претоварване от append което също така отнема броя пъти, за да добавите дадения знак:

sDebug.append(1, SomeValue);

Това обаче ще доведе до преобразуване между тях unsigned char и wchar_t, Може би искате SomeValue да бъдеш wchar_t.


0 за отговор № 4

wstring има конструктор, който приема знак. Това ще създаде wstring от char, който можете да добавите.