Конвертировать wchar_t в wstring
Извините, что задаю такой простой вопрос, но я пытаюсь поместить wchar_T в строку wstring, но когда я распечатываю его, чтобы проверить его, я получаю мусор из строки wstring. Код ниже:
wchar_t windowsDir[255];
memset(windowsDir, NULL, sizeof(windowsDir));
GetWindowsDirectory(windowsDir, 255);
std::wstring winDir(windowsDir);
if (debug){
wprintf(L"Windows Dir is %s\r\n", windowsDir);
wprintf(L"Windows Dir is %s\r\n", winDir);
}
Насколько я могу судить по примерам, я делаю правильные вещи, поэтому не могу понять, стесняюсь, я получаю мусор на экране.
Заранее спасибо за помощь,
Ура,
Нил
1 ответ
Вы используете wprintf
, Эта функция не может принять std::wstring
, Основная причина, по которой вы никогда не должны использовать printf
Кроме того, функции друзей и любых переменных аргументов заключаются в том, что они абсолютно не типизированы и не могут дополнительно справляться с не POD-типами, в том числе с любым типом библиотеки C++ Standard.
C++ IOstream будет функционировать совершенно правильно здесь.