Wie drucke ich mit fprintf / printf einen Gedankenstrich oder einen Punkt aus?

8

Ab sofort benutze ich unter Linie, um ohne Punkte auszudrucken

%Vor%

Ich erwarte, dass die Ausgabe etwas wie folgt ist,

%Vor%

Wie drucke ich mit fprintf / printf einen Gedankenstrich oder einen Punkt?

    
Thi 16.01.2009, 18:36
quelle

7 Antworten

10

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.

%Vor%

Sie könnten es sogar in einer Aussage mit einem gewissen Vertrauensvorschuss tun:

%Vor%     
Ates Goral 16.01.2009, 19:00
quelle
9

Sie können dies einfach mit iostreams anstelle von printf

tun %Vor%

Oder wenn Sie wirklich fprintf benutzen müssen (sagen Sie, dass Sie eine FILE * übergeben haben, um zu schreiben)

%Vor%     
KeithB 16.01.2009 19:43
quelle
3

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.

    
AShelly 16.01.2009 18:45
quelle
2

Sie müssen die Zeichenfolge mit dem Punkt oder dem Gedankenstrich selbst ausgeben.

Etwas wie (verzeih mein C, es ist rostig):

%Vor%     
Lawrence Dol 16.01.2009 18:39
quelle
2

Eine andere Lösung mit einer kleinen Hilfsfunktion

%Vor%

Dann können Sie Folgendes tun:

%Vor%

Dies ist im Wesentlichen, was Ates gepostet hat, aber ich habe das selbst herausgefunden;)

    
Christoph 16.01.2009 19:23
quelle
1

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:

%Vor%

Beachten Sie, dass die dritte Zeile Ihrer Beispieldaten dieses Format benötigen:

%Vor%     
Jon Ericson 16.01.2009 18:49
quelle
0

Ich denke, es gibt einen besseren Weg.

%Vor%     
nsayer 16.01.2009 21:54
quelle

Tags und Links