linora Opublikowano 6 Listopada 2004 Zgłoś Opublikowano 6 Listopada 2004 Dopiero zaczynam programować w języku C i mam problem z polskimi znakami. Jako kompilatora używam Dev-C++ 4.9.8.0, który chodzi pod Win2k. Problem polega na tym, że po napisaniu jakiegoś programu i uruchomieniu go pod DOSem, w tekście który drukuje funkcja printf, nie mam polskich znaków diakrytycznych (ą, ę, ó, ś itd.). Co więcej mogę te znaki wpisywać jeśli na przykład uruchomiony program pobiera ode mnie jakieś dane, czyli używać normalnie tych znaków pod DOSem, co by wykluczało kwestię niewłaściwego układu klawiatury. Czy ktoś wie, gdzie leży problem? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 6 Listopada 2004 Zgłoś Opublikowano 6 Listopada 2004 To zależy od ustawienia kompilatora , musisz zabaczyć czy jest takie ustawienie w opcjach które to umożliwi. Ewentualnie zaciągnąc jakiegoś patcha z netu albo zmienić coś w rejestrzse systemu windows. Wszystkie kompilatory jaki znam mają z tym problemy , trzeba to ustawić poprostu. Pogooglaj sobie na pewno coś jest. Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
linora Opublikowano 7 Listopada 2004 Zgłoś Opublikowano 7 Listopada 2004 Grzebałem w opcjach, zmieniałem różne rzeczy, ale nie dało to pożądanego skutku. Piszesz enigmatycznie żeby zmienić coś w rejestrze, tylko co? Googlałem również i znalazłem nawet podobny post na innym forum, niestety bez żadnej odpowiedzi. Może jednak ktoś wie, co konkretnie trzeba ustawić, żeby nie mieć "krzaczków"? Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
Polar Opublikowano 7 Listopada 2004 Zgłoś Opublikowano 7 Listopada 2004 Piszesz enigmatycznie żeby zmienić coś w rejestrze, tylko co?Enigmatycznie :) Hehe trudno powiedzieć to zależy od kompilatora, ( konkretnie od programu ) . Np. w C++ Builder trzeba było zmienić jeden wpis w rejestrze aby działały polskie znaczki. A w Dev-C++ może jest coś innego, albo nie ma wcale takiej opcji ( i polskie znaczki nie są zalecane ). Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
bartolomeo_1 Opublikowano 8 Listopada 2004 Zgłoś Opublikowano 8 Listopada 2004 ( i polskie znaczki nie są zalecane ).mieszasz chlopakowi w glowie. jak polskie znaczki moga nie byc 'polecane'? przeciez wszystkie dostepne programy jakos sobie z nimi radza, prawda? nie badzmy gorsi ;) cały problem polega na tym, ze przy kompilacji wlaswiwe 'ś' i inne sa konwertowane na niezgodne z nimi znaki char z tablicy ascii. Aby temu zaradzic, wystarczy znalezc odpowiedniki ascii 'ś' i innych i wlasnorecznie zaimplementowac te 'ś'. troche zmudne ale jak komus zalezy na polskich ogonkach :) jak znalezc wlasciwe numerki ascii dla 'ś' i innych? for( int i = 0; i<256; ++i) cout << i << " = " <<(char)i<< ", ";maly przyklad programu, i zalazek funkcji konwertujacej#include<iostream.h>void PolskieZnaki(char* tab){ char a = 'ą', c = 'ć', e = 'ę', l = 'ł', s = 'ś', o = 'ó', z = 'ż', zz = 'ź'; for(;*tab != NULL; ++tab ) { if(*tab == e) *tab = (char)169; if(*tab == c) *tab = (char)134; if(*tab == l) *tab = (char)136; if(*tab == s) *tab = (char)152; //do dopisania duze litery i pozostale znaki }}int main(int argc, char* argv[]){ char napis[] = "święty mikołaj"; PolskieZnaki(napis); cout << napis; return 0;}Pamietac by wysylac do funkcji lancuchy znakowe zakonczone NULL`em! Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...
linora Opublikowano 8 Listopada 2004 Zgłoś Opublikowano 8 Listopada 2004 bartolomeo_1 - wielkie dzięki!!! :D Cytuj Udostępnij tę odpowiedź Odnośnik do odpowiedzi Udostępnij na innych stronach Więcej opcji udostępniania...