Hallo... Im Moment stelle ich die Uhrzeit wie folgt auf einem LCD dar, bzw. schicke die Daten zum LCD: sprintf(Puffer, "Uhr: %i:%i:%i ", UhrStunde, UhrMinute, UhrSekunde); LCDText(0,3, Puffer); Das funktioniert auch soweit. Angezeigt wird dann logischerweise: 8:45:32. Wie kann ich es machen, dass führende Nullen immer mit angezeigt werden? Also 08:45:32. Irgendwie steh ich da auf dem Schlauch... Danke schon im Vorraus! Gruß, Steffen Brüggemann
if (UhrStunde < 10) { sprintf(Puffer, "Uhr: 0%i:%i:....... .... } else .... Was besseres fällt mir nicht ein.
> sprintf(Puffer, "Uhr: %02d:%02d:.......
Diese Formatanweisung unterstützt das von Steffen verwendete sprintf
aber leider nicht. (Zumindest hat es das damals nicht...)
André. ;-)
@Alex: Diese Idee hatte ich auch schon, nur gibt es dann ja 8 Möglichkeiten, da nicht nur die Stunde abgefragt werden muss, sonder auch noch die Minute und die Sekunde. @Werner B. u. André sprintf(Puffer, "Uhr: %02d:%02d:....... Das funktioniert in der Tat nicht. Diese Lösung hatte mir schonmal jemand vorgeschlagen, daher habe ich das mal getestet. Gruß, Steffen
Mit WinAVR aktuelle Version von avrLibC snprintf_P(buffer, 20, PSTR(" %02d:%02d:%02d %-6S"), tm.tm_hour, tm.tm_minute, tm.tm_second, dst); NULL problemo
Also dem Compiler ist das egal, das ist Sache der avr-libc. Einfach mal auf die neueste Version updaten (IIRC 1.2.3), und wenn's dann nicht geht, einfach mal einen Bugreport an die Entwickler schreiben. Für die Zwischenzeit musst du den Code halt selber von Hand schreiben.
Nö, das geht schon immer. Man sollte natürlich nicht die Minimalversion von printf() benutzen -- die unterstützt keine field width. Die Standardversion tut aber.
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.