Forum: Compiler & IDEs sprintf() nur zwei zeichen ausgeben


von gast (Gast)


Lesenswert?

volatile uint32_t kmh =0;
volatile uint32_t km =0;
char s[8];

sprintf(s,"%2i",kmh);
myuart_puts(s);


Ich wollte mir von kmh nur die ersten zwei zahlen anzeigen lassen,
doch er zeigt mir alles.

von Wesserbessi (Gast)


Lesenswert?

Mach mal:

sprintf(s,"%2i",kmh);
s[2]=0;
myuart_puts(s);

funktioniert bei mir immer.

von gast (Gast)


Lesenswert?

Da bemerke ich da gibts ein Problem

kmh =1000; (100kmh )
kmh = 500; ( 50kmh )
kmh =  40; (  4kmh )

somit ist die zahl einmal 4 und einmal 2 stellig.
ideal waere wenn man.

100.0 kmh
 50.0 kmh
  4.0 kmh

ausgeben koennte.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

1
sprintf (s, "% 3i", kmh);

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

1
sprintf (s, "%3i.0 kmh", kmh / 10);

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.