Hallo zusammen,
bin neu in der C++ Programmierung und hätte eine simple Frage, die vermutlich recht einfach zu beantworten ist..
Auf einem LCD will ich eine Counter ablaufen lassen, der beispielsweise von 20-1 herunterzählt.
Wie schaffe ich es, dass eine einstellige Ziffer wie "9" oder "1" als 09 bzw. 01 angezeigt wird?
Bei der variable handelt es sich um Integer.
Wäre für Hilfe sehr dankbar. Falls diese Frage im Forum schon des öfteren gestellt wurde, bitte ich dies zu entschuldigen. Konnte leider viele Beiträge zu Umrechnung in Heda finden, aber nichts passendes, was mein Problem löst.
Die Frage gibts öfters und die üblichen Verdächtigen haben auch schon öfters Lösungen gepostet.
Ist auch nicht spezifisch deutsch, so dass die Anzahl der fertigen Lösungen ziemlich groß ist.
Die Standard-Lösung ist sprintf
in diesem Fall:
int number = 9; // to be displayed as "09"
char text[3]; // buffer for 2 characters + termination
sprintf(text, "%02d", number);
lcd.write(text);
kann mit nicht viel mehr Code-Zeilen noch optimiert werden, so dass, falls sprintf nicht weiter gebaucht wird, ein kleinerer Sketch entsteht.
Da du neu in c / c++ bist, solltest du auf jeden Fall erstmal sprintf kennen lernen. Viel Spass
int number=9;
if (number < 10) lcd.print('0'); // einstellige Zahlen erhalten zusätzlich eine führende Null
lcd.print(number); // schreibt Zahlen im Bereich 0 .. 99 ein oder zweistellig
Gibt Leute, die wollen Zahlen gerne rechtsbündig. Die fügen statt der '0' ein Leerzeichen ' ' ein.
Das hilft auch dagegen, dass auf dem lcd gerne eine vorige längere Ausgabe als Schrott stehen bleibt.
Nochmals Danke für die Unterstützung!
Anfangs ist die Denke um sprinte noch etwas gewöhnungsbedürftig, wenn man sich noch nicht wirklich mit Code auseinandersetzt hat, aber ich komme langsam zurecht.