Witam
Robię program do kryptoanalizy szyfru cezara dla różnych języków.
Tekst zaszyfrowany podaję z klawiatury do stringa, natomiast dane o języku wczytuję z pliku za pomocą ifstream.
I mam taki problem, że polskie litery z pliku się krzaczą. Jak to naprawić?
Z góry dzięki.
Musisz podać troszkę więcej informacji. W jakim są kodowaniu? Wczytujesz je do std::string
, std::wstring
, czy do jeszcze czegoś innego? W jakim sensie się krzaczą - przy zapisaniu ich do pliku ponownie, czy może przy wrzuceniu ich na konsolę?
Dane zapisałem w notatniku nic nie zmieniając więc pewnie jest kodowanie 1250. Wczytuję je do specjalnej struktury przeznaczonej na dane.
Fragment kodu z szyfrowaniem:
http://www.privatepaste.com/c3877772a4
Przykładowy plik z danymi:
http://www.privatepaste.com/aee58b3566
A "krzaczenie się" objawia się... Kiedy?
Po prostu polskie znaki wczytane z pliku to krzaczki - zupełnie inne znaki... Próbowałem funkcję która jest w kodzie w komentarzu na początku main(), ale wtedy z kolei stringi się krzaczą;/
Jeżeli coś jest "krzaczkiem" to pewnie znaczy, że to coś widać - jeżeli widać, to pewnie wyplułeś to na konsolę, tak? Twoja konsola działa z pewną stroną kodową (chcp
powinno wypisać jaką), pliki masz też w jakimś kodowaniu - jeżeli nie jest to to samo kodowanie, to albo którąś stronę dostosujesz, albo w programie będziesz sobie robił translację. ;)
Jeśli szukałeś rozwiązania w Google to pewnie zobaczyłeś całkiem sporo linków na ten temat - konsola Windowsa najpiękniejsza i najprzyjemniejsza nie jest.
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.