Forum: Mikrocontroller und Digitale Elektronik sprintf bei AT89C51 Datenbreite


von Harald (Gast)


Lesenswert?

Hallo,

kurz das Problem, aber erst der Quellcode:
1
  char testchar[32] ;
2
3
  sprintf(testchar,"hallo %u %i %hu",10,10,10);
Inhalt der Variable: "hallo 2570 2560 0"

Statt nur die 8 Bit breite Zahl zu parsen wandelt er immer 16 Bit-breite 
Daten um.
(2570 = 0xA 0xA
2560 = 0xA =x0)

Kennt jemand eine Möglichkeit die Datenbreite für sprintf zu 
beeinflussen?


Danke
Harald

von Oliver J. (skriptkiddy)


Lesenswert?

caste mal auf int:
1
sprintf(testchar,"hallo %u %i %hu",(int)10,(int)10,(int)10);

von Peter D. (peda)


Lesenswert?

Nimm mal %bu

http://www.keil.com/support/man/docs/c51/c51_printf.htm

"The optional characters b or B may immediately precede the type 
character to respectively specify char types for d, i, u, o, x, and X."


Peter

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
Noch kein Account? Hier anmelden.