Hallo Alle, wie kann man denn eine Kommazahl rechtsbündig auf ein Display schreiben und links die restlichen Felder des Arrays mit Leerzeichen auffüllen? Gibt es dazu etwas zum Lesen oder eine Funktion?? Vielen Dank im Voraus René
In C formatiert man floating-Point-Ausgaben mit der dafür geeigneten Funktion printf(). Diese benötigt zwar viel Speicher und ist daher bei einfacheren Aufgaben besser nicht zu verwenden, aber hier ist sie praktisch. Mit dem Formatspezifizierer "%n.mf" n - Feldbreite m - Präzision (anzahl Nachkommastellen) lässt sich so etwas hinbekommen. Ist die Feldbreite länger als die resultierende auszugebende Zahl, so wird rechtsbündig mit führenden Leerzeichen ausgegeben. Beispiel printf("%10.2f", x); Durch Voransetzen eines '-' vor die Feldbreite wird linksbündig ausgegeben und mit folgenden Leerzeichen aufgefüllt. printf("%-10.2f", x); Durch voransetzen einer 0 werden statt führender Leerzeichen führende Nullen ausgegeben: printf("%010.2f", x); (010 wird hier nicht als oktale Zahl interpretiert) Diese Syntax kann auch bei nicht-floatingpoint-Zahlen und auch Strings angewandt werden: printf("%08X", i); printf("%8d", i); printf("%13s", string); Für die Ausgabe auf ein LC-Display erscheint der Gebrauch von snprintf() (printf in längenbegrenzten Puffer) sinnvoll.
Hallo Rufus T. Firefly, ich benutze einen ATMega128. Kennt der printf oder snprintf Befehle?? Ciao und danke für die schnelle Antwort. René
äh ich meine natürlich: meine Display lib kennt nur "puts" und "putc". Man müsste sich es schon vorher zurechtbauen und dann nur noch aufs Display schießen. René
sprintf/snprintf gehören in die Standard-Library des C-Compilers.
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.