Ein schneller Ansatz:
Wenn die maximale Menge an Polsterung, die Sie jemals benötigen, im Voraus bekannt ist (was normalerweise der Fall ist, wenn Sie eine Tabelle mit fester Breite formatieren, wie Sie sie haben), können Sie ein statisches "Padding" verwenden string und schnapp dir einfach einen Brocken raus. Dies ist schneller als der Aufruf von printf
oder cout
in einer Schleife.
Sie könnten es sogar in einer Aussage mit einem gewissen Vertrauensvorschuss tun:
%Vor%Sie können es nicht in einer Aussage machen. Sie können sprintf verwenden, dann Punkte für Leerzeichen selbst ersetzen oder tun etwas wie
%Vor%Bearbeiten: Vereinfachte mein Beispiel oben basierend auf @Ates Paddler-Konzept. Dieser Weg erfordert keine "Glaubenssprünge", ob der Tag-String zu groß oder zu klein ist - er startet immer die Daten in Spalte 41.
Sie müssen die Zeichenfolge mit dem Punkt oder dem Gedankenstrich selbst ausgeben.
Etwas wie (verzeih mein C, es ist rostig):
%Vor% Ich würde vorschlagen, eine Funktion zu schreiben, die eine Zeichenfolge mit X-Zeichen auffüllt und diese verwendet, um das erste Argument für Ihre printf
-Zeichenfolge zu generieren. Etwas wie:
Beachten Sie, dass die dritte Zeile Ihrer Beispieldaten dieses Format benötigen:
%Vor%