Pisanie polskich znaków w konsoli (wcout)

Pisanie polskich znaków w konsoli (wcout)
mpaw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 531
0

Dzień dobry,

Mam taką funkcję:

Kopiuj
void menu()
{
	wcout << L"Wybierz jedną z opcji:\n";
	wcout << L"1. Wyświetl informacje o pracownikach\n";
	wcout << L"2. Dodaj pracownika\n";
	wcout << L"3. Wyjście\n";
}

Problem polega na tym, że po uruchomieniu funkcji, wcout pisze do pierwszego znaku polskiego (ą - w słowie 'jedną') nie wyświetlając go, po czym kończy działanie i przechodzi do instrukcji, po wywołaniu funkcji.

W jaki sposób mogę to zmienić?

Dzięki

pasasap
  • Rejestracja: dni
  • Ostatnio: dni
0

Zapewne nie jest to problem z kodem, lecz z konsolą, a dokładniej czcionką. Np. https://wandbox.org/permlink/bAquzZ0GLaFoZQQG zamiast polskich znaków jest znak zapytania.

mpaw
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 531
1

Znalazłem odpowiedź w sieci: (Stack Overflow)

http://stackoverflow.com/questions/8871540/o-wtext-o-u16text-o-u8text-are-these-modes-possible-in-mingw-compiler-ar

Należy dodać na początku maina taki kod:

Kopiuj
#include <fcntl.h>
#include <io.h>
#include <stdio.h>

(...)

int main() 
{
    _setmode(_fileno(stdout), 0x00020000);
    (...)
}

Dzięki, pozdrawiam.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.