Искам да добави неподписан знак към 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, който можете да добавите.