RTV forum PL | NewsGroups PL

Jak zastąpić 'st' znakiem stopnia w tablicy char w AvrGCC?

[AvrGCC] Jak zapisac znak specjalny

NOWY TEMAT

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zastąpić 'st' znakiem stopnia w tablicy char w AvrGCC?

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.

elektroda NewsGroups Forum Index - Elektronika Polska - Jak zastąpić 'st' znakiem stopnia w tablicy char w AvrGCC?

NOWY TEMAT

Regulamin - Zasady uzytkowania Polityka prywatnosci Kontakt RTV map News map