wcout в WinXP при использовании MinGW w64

301
14 февраля 2017, 19:27

Как вывести не-ASCII текст с помощью std::wcout в Windows XP, если для компиляции используется MinGW w64? Уже посмотрел кучу похожих вопросов, но ничего из этого не работает. _setmode(_fileno(stdout), _O_U16TEXT) возвращает -1, компиляция с -municode не помогает — сообщение печатается до первого не-ASCII символа. (полная команда: i686-w64-mingw32-g++ -mconsole -municode -static). С другой стороны, вот такой код:

int wmain() {
    DWORD _;
    std::wstring ws = L"кошка\n";
    WriteConsoleW(GetStdHandle(STD_OUTPUT_HANDLE), ws.c_str(), ws.size(), &_, nullptr);
    return 0;
}

выводит сообщение правильно, но мне хотелось бы использовать wcout. Может быть, есть способ?

READ ALSO
Переставить слои местами

Переставить слои местами

Какие возможности есть по следующему заданию???

319
Как сравнить char и string c++?

Как сравнить char и string c++?

Имеется такой код:

445
Частотный анализ текста c++

Частотный анализ текста c++

Решил я написать частотный анализ текста на c++Возникли следующие проблемы: Русские символы нужны на всех платформах(linux, mac os, windows), поэтому...

292