Code::Blocks i polskie znaki w windowsowskiej konsoli

Gdy szukasz lub masz problem z jakimś programem.

<<

Tom

Awatar użytkownika

Topic author

Profesor Świata

Posty: 820

Rejestracja: 19 gru 2005, 16:36

Post autor: Tom » 3 gru 2010, 23:10

Code::Blocks i polskie znaki w windowsowskiej konsoli

Witam, właśnie testuję Code::Blocks (baaardzo ułatwia pracę w porównaniu z Dev-C++) i usiłuję zmusić program do kodowania pliku do formatu Ms-Dos. Po prostu chcę zrobić polskie literki w konsoli. W Dev-C++ załatwiam to za pomocą funkcji znalezionej w internecie

Kod: Zaznacz cały

string pl(string znak)
{
   for( unsigned i = 0; i < znak.length(); i++ ) { 
        switch( znak[ i ] ) {
        case 'ą':
            znak[ i ] = static_cast < char >( 165 );
            break;
            
        case 'ć':
            znak[ i ] = static_cast < char >( 134 );
            break;
            
        case 'ę':
            znak[ i ] = static_cast < char >( 169 );
            break;
            
        case 'ł':
            znak[ i ] = static_cast < char >( 136 );
            break;
            
        case 'ń':
            znak[ i ] = static_cast < char >( 228 );
            break;
            
        case 'ó':
            znak[ i ] = static_cast < char >( 162 );
            break;
            
        case 'ś':
            znak[ i ] = static_cast < char >( 152 );
            break;
            
        case 'ź':
            znak[ i ] = static_cast < char >( 171 );
            break;
            
        case 'ż':
            znak[ i ] = static_cast < char >( 190 );
            break;
            
        case 'Ą':
            znak[ i ] = static_cast < char >( 164 );
            break;
            
        case 'Ć':
            znak[ i ] = static_cast < char >( 143 );
            break;
            
        case 'Ę':
            znak[ i ] = static_cast < char >( 168 );
            break;
            
        case 'Ł':
            znak[ i ] = static_cast < char >( 157 );
            break;
            
        case 'Ń':
            znak[ i ] = static_cast < char >( 227 );
            break;
            
        case 'Ó':
            znak[ i ] = static_cast < char >( 224 );
            break;
            
        case 'Ś':
            znak[ i ] = static_cast < char >( 151 );
            break;
            
        case 'Ź':
            znak[ i ] = static_cast < char >( 141 );
            break;
            
        case 'Ż':
            znak[ i ] = static_cast < char >( 189 );
            break;
        }
    }
    return znak;
}
Jednak chciałbym zrezygnować z niej na rzecz zmiany kodowania znaku. Więc czy Code::Blocks obsługuje kodowanie dosowskie?


Tutaj miała być jakaś mądra sentencja, ale Tom'owi się nie chciało...
<<

Maciek

Awatar użytkownika

Administrator

Posty: 3526

Rejestracja: 5 lut 2005, 12:49

Post autor: Maciek » 4 gru 2010, 16:00

Re: Code::Blocks i polskie znaki w windowsowskiej konsoli

Kodowanie dosowskie? A cóż to takiego? :D

Aby korzystać z polskich ogonków w programach musisz kodować te znaki polskie międzynarodowymi kodami, które znajdziesz w tablicach ASCII. Nie wiem po co tego chcesz, ale skoro lubisz się męczyć to się męcz!
Quidquid latine dictum sit, altum videtur
Obrazek
Gdy nie masz argumentów w dyskusji, napisz: "o gustach się nie dyskutuje"
<<

Tom

Awatar użytkownika

Topic author

Profesor Świata

Posty: 820

Rejestracja: 19 gru 2005, 16:36

Post autor: Tom » 4 gru 2010, 21:07

Re: Code::Blocks i polskie znaki w windowsowskiej konsoli

Chodzi mi raczej o kodowanie zapisanego projektu. W WordPadzie wystarczy wybrać Dokument tekstowy - format MS-DOS, potem wystarczy skopiować literki i po kompilacji wyświetlają się prawidłowo.
Z tego co widzę niestety w C::B nie da tak rady.
Tutaj miała być jakaś mądra sentencja, ale Tom'owi się nie chciało...
<<

Maciek

Awatar użytkownika

Administrator

Posty: 3526

Rejestracja: 5 lut 2005, 12:49

Post autor: Maciek » 5 gru 2010, 21:16

Re: Code::Blocks i polskie znaki w windowsowskiej konsoli

Widzę że trzeba wytłumaczyć pewną rzecz na poziomie humanistycznym, a nie ścisłym (programistycznym) :]

1. Word obsługuje różne kodowania znaków, gdyż jego programista z Microsoftu zaprogramował mu je.
2. Twój program nie obsługuje różnych kodowań, gdyż TY PROGRAMISTO nie zaprogramowałeś mu ich.
3. Środowisko programistyczne codeblock umożliwia korzystanie z niemal każdego kodowania (także polskiego).
3. Tablice znaków ASCII o której wspominałem - widział? :chytry:
Quidquid latine dictum sit, altum videtur
Obrazek
Gdy nie masz argumentów w dyskusji, napisz: "o gustach się nie dyskutuje"