roxy
Guest
Tue Jan 27, 2009 6:34 pm
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.
MKi
Guest
Tue Jan 27, 2009 6:52 pm
roxy pisze:
Quote:
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.
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
Marcin
Guest
Tue Jan 27, 2009 6:56 pm
roxy pisze:
Quote:
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.
zamiast
"\x34\x37\xdf"
może spróbuj
"\x34""\x37""\xdf"
Pozdr. MD
Grzegorz Kurczyk
Guest
Tue Jan 27, 2009 8:51 pm
Użytkownik Marcin napisał:
Quote:
roxy pisze:
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.
zamiast
"\x34\x37\xdf"
może spróbuj
"\x34""\x37""\xdf"
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
max441
Guest
Tue Jan 27, 2009 10:59 pm
Użytkownik roxy napisał:
Quote:
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.
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
Adam Dybkowski
Guest
Tue Jan 27, 2009 11:17 pm
max441 pisze:
Quote:
W CodeVisionAVR nie mialem problemu - stosowalem zapis np
"\x34\x37\xdf" i mialem wstawione znaki. Avrgcc niestety wypisuje mi
jakies krzaki.
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".
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");
Quote:
Druga rzecz (tego akurat nie jestem na 100% pewien) być
może trzeba też używać dużych liter w kodach hex.
Wielkość liter w kodach hex jest bez znaczenia.
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.
roxy
Guest
Wed Jan 28, 2009 9:02 pm
Użytkownik "Adam Dybkowski" <adybkows12@45wp.pl> napisał w wiadomości
news:glo15f$241$3@news.wp.pl...
Quote:
max441 pisze:
W CodeVisionAVR nie mialem problemu - stosowalem zapis np "\x34\x37\xdf"
i mialem wstawione znaki. Avrgcc niestety wypisuje mi jakies krzaki.
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".
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");
Druga rzecz (tego akurat nie jestem na 100% pewien) być może trzeba też
używać dużych liter w kodach hex.
Wielkość liter w kodach hex jest bez znaczenia.
--
Adam Dybkowski
http://dybkowski.net/
Dziekuje Panu Adamowi za pomoc.Wlasnie taki ("Temperatura 15\xdf" "C");
zapis gwarantuje poprawne wyswietlenie znaku.
Adam Dybkowski
Guest
Sat Jan 31, 2009 12:47 am
roxy pisze:
Quote:
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");
Dziekuje Panu Adamowi za pomoc.Wlasnie taki ("Temperatura 15\xdf" "C");
zapis gwarantuje poprawne wyswietlenie znaku.
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);
--
Adam Dybkowski
http://dybkowski.net/
Uwaga: przed wysłaniem do mnie maila usuń cyfry z adresu.