Strona 1 z 1

Code::Blocks i polskie znaki w windowsowskiej konsoli

: 3 gru 2010, 23:10
autor: Tom
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?

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

: 4 gru 2010, 16:00
autor: Maciek
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!

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

: 4 gru 2010, 21:07
autor: Tom
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.

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

: 5 gru 2010, 21:16
autor: Maciek
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: