[erledigt] Serielle Ausgabe: Wie Zahlen rechtsbündig?

Hier ist noch ein Weg wie man so eine Formatierungsfunktion schreiben kann:
http://forum.arduino.cc/index.php?topic=303009.msg2108779#msg2108779
Bündigkeit und Breite sind wählbar

agmue:
Im Beispiel readCSV.ino der Bibliothek SdFat bin ich über diese Zeilen gestolpert:

    // print in six character wide columns

cout << text << setw(6) << lg << setw(6) << f1 << setw(6) << f2 << endl;




Was dahinter steckt, weiß ich nicht, ob es Dir hilft, auch nicht, aber funktionieren tut es, das habe ich probiert.

Ganz einfach. Die Library hat ein paar Streaming Klassen die den << Operator mehrfach überladen. So werden dann für verschiedene Datentypen unterschiedliche Formatierungs-Methoden aufgerufen. Und jede Funktion gibt das Stream Objekt (also sich selbst) zurück, wodurch diese Verkettung funktioniert.

z.B.:

  ostream &operator<< (const char *arg) {
    putStr(arg);
    return *this;
  }

ptrStr() ist dann die eigentliche Ausgabe-Methode

Input Streaming geht auch :slight_smile:

Die Streaming.h Library funktioniert letztlich auch nicht anders, aber verwendet einfach die Arduino Print Klasse:

inline Print &operator <<(Print &obj, const _BASED &arg)
{ obj.print(arg.val, arg.base); return obj; }

Hallo nochmal!

Vielen Dank für die Antworten!

Das „-Müll“ in C-String-Müll nehme ich zurück. Mich erinnert diese Art der „Textverarbeitung“ an Brainfuck (eine esoterische Programmiersprache, s. hier). Diese ganzen strfuck-Befehle sind halt ziemlich spaßfrei.

Aber da ich ja nun weiß, dass es spaßfrei ist, kann ich mich darauf einstellen.

Gruß

Gregor