Zmiana czcionki w cmd

0

Cześć. Staram się, by w jak najprostszy sposób wyświetlać polskie znaki w skryptach C++. Z tego co wiem to Mac OS oraz Linux korzystają z kodowania UTF-8. Konsola Microsoftu korzysta z OEM 852. W Codeblocks nie da się ustawić kodowania 852, więc ustawiłem UTF-8 i stworzyłem taki kod:

#include <iostream>
#include <cstdlib>
using namespace std;

main()
{
    #ifdef _WIN32
    system("chcp 65001"); // Zmiana kodowania
    system("cls"); // Pozbycie sie informacji o zmianie kodowania.
    #endif

    cout << "Zażółć gęślą jaźń\n";

    system("pause");
    return 0;
}

Wszystko jest pięknie, tylko trzeba jeszcze dodać jakiś fragment kodu, który zmienia czcionkę w cmd. Macie jakieś pomysły?
Nie interesuje mnie możliwość zmiany czcionki w ustawieniach, bo osoba, która otrzyma mój plik *.exe powinna już wszystko mieć działające. Domyślna czcionka o dziwo nie działa. Dodam jeszcze, że szperałem w Google, ale nic nie znalazłem.

0

Niestety zadziała to wyłącznie dla Windows Vista i wyżej :/ Ale dzięki.

1
// plik zapisany w UTF-8

#define _WIN32_WINNT 0x501
#include <windows.h>

#include <clocale>
#include <iostream>
using namespace std;

int main()
{
	setlocale(LC_CTYPE,".852");
	SetConsoleCP(852);
	SetConsoleOutputCP(852);
	
	wcout << L"zażółć gęślą jaźń" << endl;
}

i podobnie używaj wcin zamiast cin, wstring zamiast string, wchar_t zamiast char.

Konwersja między char[] a wchar_t[] i z powrotem za pomocą mbstowcs() i wcstombs().

0

Dziękuję. Niestety jest to proces uciążliwy. Pierwszy sposób działa od Vista w górę, a drugi nie rozwiązuje problemu (który pierwotnie był zmianą czcionki). Wracam do metody Mirosława Zelenta (YouTubera). Będę pisał w UTF-8, a potem w notepad++ konwertował na 852.

1 użytkowników online, w tym zalogowanych: 0, gości: 1