Witam. jak zapisac w tablicy znakow znak specjalny np. char str[]="Temperatuta 15stC" zastêpuj±c znaki 'st' znakiem stopnia (koleczko) ? W CodeVisionAVR nie mialem problemu - stosowalem zapis np "\x34\x37\xdf" i mialem wstawione znaki. Avrgcc niestety wypisuje mi jakies krzaki.
[AvrGCC] Jak zapisac znak specjalny
Jan 27, 2009
7 Replies
roxy pisze:
Nie jestem guru od AvrGCC, ale w języku C od zawsze istniał zapis _ósemkowy_ \000, na przykład Twoje \xdf będzie wyglądać \337.
Pozdrowienia, MKi
roxy pisze:
zamiast "\x34\x37\xdf" może spróbuj "\x34""\x37""\xdf"
Pozdr. MD
Użytkownik Marcin napisał:
W WinAVR (a dokładnie w PN) normalnie wstawiam znak specjalny przez lewy Alt + (kod ASCII wystukany na klawiaturze numerycznej). W kodzie źródłowym pojawia się jakiś śmieszny znaczek, ale w wynikowym jest to co trzeba.
Pozdrawiam Grzegorz
Użytkownik roxy napisał:
Powinno działać tak jak piszesz. Jest jedno ale, jeśli używasz znaku specjalnego w hex bezpośrednio przed literą z zakresu A-F to tę literę też musisz zapisać jako kod np. w Twoim przypadku "Temperatura
15\xA7\x43". Druga rzecz (tego akurat nie jestem na 100% pewien) być może trzeba też używać dużych liter w kodach hex.pozdrawiam
Piotrek
max441 pisze:
Nie trzeba aż tak cudować, wystarczy zakończyć ciąg znaków cudzysłowem i już można rozpocząć kolejny, np: printf ("Temperatura 15\xA7" "C");
Wielkość liter w kodach hex jest bez znaczenia.
U¿ytkownik "Adam Dybkowski" snipped-for-privacy@45wp.pl napisa³ w wiadomo¶ci news:glo15f$241$ snipped-for-privacy@news.wp.pl...
Dziekuje Panu Adamowi za pomoc.Wlasnie taki ("Temperatura 15\xdf" "C"); zapis gwarantuje poprawne wyswietlenie znaku.
roxy pisze:
BTW: Dla lepszej przejrzystości kodu warto od razu zdefiniować np.: #define DEG_CHAR "\xDF" a może i dodatkowo: #define DEG_CENT DEG_CHAR "C" po czym używać w programie w ten sposób: printf ("Temperatura %d" DEG_CENT, temp);
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required