Kompilacja w C++,polskie znaki w konsoli

Żeby konsola Ci się nie zamykała od razu powinieneś na końcu funkcji main (ale przed return ) wstawić takie coś: getch();

Ale do tego musisz na początku dołączyć plik conio.h ( #include )

P.S.

Przy użyciu tej opcji żeby program się zamknął naciskasz dowolny klawisz.

Nie oto chodzi.

Wie ktos co zrobić ?

Złe kodowanie masz w edytorze ustawione, ot co. Ustaw odpowiednią code page dla plików, albo zmień kodowanie samego edytora

Oto moje własne rozwiązanie:

#include 

#include 

#include 

#include 


#define p(c1, c2) { case -c1: c = c2; break; }


using namespace std;


void pl(char &c)

{

    switch(c)

    {

        p(26, 134)

        p(58, 143)

        p(113, 141)

        p(97, 171)

        p(13, 162)

        p(45, 224)

        p(71, 165)

        p(91, 164)

        p(22, 169)

        p(54, 168)

        p(81, 189)

        p(65, 190)

        p(15, 228)

        p(47, 227)

        p(77, 136)

        p(93, 157)

        p(116, 151)

        p(100, 152)

    }

}


void pa(const char *s, ...)

{

    char buf[256];

    va_list v;


    va_start(v, s);

    vsprintf(buf, s, v);

    va_end(v);


    for(int i = 0; i < 256; i++)

    {

        pl(buf[i]);

    }


    printf(buf);

}


int main()

{

    string a = "ćĆŹźóÓąĄęĘŻżńŃłŁŚś";

    pa(a.c_str());

    return 0;

}

a jak to zrobić ?

W opcjach edytora oczywiście. Z tym że musisz uwzględnić że:

  1. Nie każdy edytor ma takie ustawienia.

  2. Nawet jeżeli ma jakieś to nie koniecznie będzie miał takie jakie potrzebujesz.

  3. Kod staje się nie przenośny, ponieważ różne są kodowania znaków pod różnymi systemami.

Czyli w VISUAL C++ nie można po prostu pisać po polsku ?

W VISUAL C++ można.

Ma odpowiednie opcje edytora dla kodowań używanych w niektórych środowiskach, w tym dla trybu konsolowego windows.