Подтвердить что ты не робот

Конвертировать std:: wstring в const * char в С++

Как преобразовать std:: wstring в const * char в С++?

4b9b3361

Ответ 1

Вы можете преобразовать std::wstring в const wchar_t * с помощью функции-члена c_str:

std::wstring s;
const wchar_t *str = s.c_str();

Однако преобразование в const char * не является естественным: для этого требуется дополнительный вызов std::wcstombs.

Ответ 2

Вы не можете сделать это просто так. std::wstring представляет собой строку с широкими (Unicode) символами, а char* в этом случае является строкой символов ASCII. Должно быть преобразование кодовой страницы из Unicode в ASCII.

Для преобразования вы можете использовать стандартные библиотечные функции, такие как wcstombs или Windows WideCharToMultiByte.

Обновлено, чтобы включить информацию из комментариев, спасибо, что указали это.