Hi Leute! Ist es irgendwie möglich das Grad Symbol direkt mit in sprintf reinzubekommen? Ziel: 123°C Das Grad Symbol ist ja nicht mehr im Standard ASCII Zeichensatz. Es hat 248d, bzw 0xF8h. Ich habe schon verucht es einfach mittels eines %c hineinzubekommen: sprintf( buffer, %d%cC, deg_c, 248 ); Das klappt jedoch auch nicht. Gibt es eine Formatoption, die einfach die 248 in den String schreibt? Sonst müsste ich das selbst dranhängen. Danke
Sorry, es muss natürlich so sein: sprintf( buffer, "%d%cC", deg_c, 248 );
Beim GCC kannst du auch einfach " °C" schreiben wenn dein Editor auf den gleichen Zeichensatz wie dein Ausgabemedium eingestellt ist.
Eric B. schrieb: > sprintf( buffer, "%d\xF8C", deg_c); Das funktioniert leider nicht. Das C hinter F8C scheint ebenfalls als HEX interpretiert zu werden. Nehme ich das C weg, so erscheint das gleiche kryptische Symbol wie wenn ich die Variante mit %c und 248 benutze. Ein kleines x mit nem Querstrich drauf. Ich benutze CCS v7.
uC-Fred schrieb: > so erscheint das gleiche kryptische Symbol wie wenn ich die Variante mit > %c und 248 benutze. Bist Du sicher, dass 248 der richtige Code ist? Hört sich nämlich nicht so an. Was ist das für ein Ausgabegerät?
uC-Fred schrieb: > "Character value is out of range" gibt es als Warnung. Wann, bei "\xF8C" oder generell? Ja, ist klar, "\xF8C" ist hier keine gute Idee. Bei "%c" könnte ich mir noch vorstellen, dass die 248 als signed character interpretiert wird.
Frank M. schrieb: > Bist Du sicher, dass 248 der richtige Code ist? Hört sich nämlich nicht > so an. Was ist das für ein Ausgabegerät? Das war der richtige Hinweis, danke! Ich ging von der ASCII-Tabelle im Anhang aus. Da ist 248d das Grad-Symbol. Ich schreibe auf ein HD44780 Display - da ist es 223d. Und jetzt klappt es auch mit %c und der 223. Danke euch! Frank M. schrieb: > Ja, ist klar, "\xF8C" ist hier keine > gute Idee. Ja, ist in diesem Fall ungünstig.
uC-Fred schrieb: > Ich ging von der ASCII-Tabelle im Anhang aus. Das ist ein steinalter DOS-Zeichensatz und hat mit ASCII eigentlich nur zur Hälfte zu tun ;-) > Ich schreibe auf ein HD44780 Display - da ist es 223d. Und jetzt > klappt es auch mit %c und der 223. Dachte ich mir schon. Schön, dass es jetzt klappt.
1 | sprintf( buffer, "%d\xDF""C", deg_c); |
oder
1 | #define S_DEGREE "\xDF"
|
2 | |
3 | sprintf( buffer, "%d"S_DEGREE"C", deg_c); |
:
Bearbeitet durch User
Dr. Sommer schrieb: > Beim GCC kannst du auch einfach " °C" schreiben wenn dein Editor auf den > gleichen Zeichensatz wie dein Ausgabemedium eingestellt ist. Das muss nicht der gleiche sein. Es gibt einen Quell-Zeichensatz und einen Zeichensatz für den generierten Code. Der Editor muss nur den Quell-Zeichensatz nutzen und der Ziel-Zeichensatz muss auf den vom Ausgabemedium eingestellt sein.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.