sprintf - Grad-Symbol mit in string

Gast #5040528
Lesenswert?

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
Gast #5040552
Lesenswert?

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.
Gast #5040564
Lesenswert?

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.
Angehängte Dateien:
#5041281
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren