Zweistellige Anzeige von Ziffern auf LCD

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. :disappointed_relieved:

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

Das ging ja fix!
Werde es ausprobieren und mich mit sprinte mal etwas vertrauter machen!
Vielen Dank für die schnelle Hilfe!

Eine andere Art wäre:

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.

Hallo, die zwei Links die hier stehen, fand ich ganz interessant.

Die Lösung von michael_x ist am sparsamsten bei sowas. Das kann man auch bequem auf 3 oder 4 Stellen erweitern.

printf() ist sehr schön, aber frisst auch viel Speicher, da alle Formatierungsoptionen kompiliert werden, egal ob man sie braucht oder nicht.

Jetzt habt Ihr schon alle geschrieben, und mir bleibt nichts mehr.
Grüße Uwe

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. :smiley: