Smart-Art formatieren Tabellen auf stdout in C
Ich versuche Tabelle schreiben auf stdout mit numerischen Daten. Ich möchte so zu formatieren, dass die zahlen ausgerichtet sind wie:
1234 23
312 2314
12 123
Ich weiß, dass max Länge der Zahl ist 6 chars, ist es eine intelligente Art und Weise zu wissen, wie viele Räume muss ausgegeben werden, bevor die Zahl so sieht es genau so aus?
Blick auf
gibt es eine Möglichkeit ohne die Verwendung von <iomanip>? Ich weiß, es klingt komisch, aber ich möchte, dass mein code so portabel wie möglich
Alles klar, Ihr überzeugt mich 🙂 danke
std::setw
und std::setfill
im <iomanip>
.gibt es eine Möglichkeit ohne die Verwendung von <iomanip>? Ich weiß, es klingt komisch, aber ich möchte, dass mein code so portabel wie möglich
iomanip
ist ein header, der kommt mit der C++ standard library-Sie können nicht finden, alles, was more portable...Alles klar, Ihr überzeugt mich 🙂 danke
InformationsquelleAutor Blackie123 | 2011-12-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
printf
werden kann die Schnellste Lösung:Drucke:
Etwas ähnliches kann erreicht werden, eine mühsame und ausführliche Sequenz der iostream-Befehle; jemand anderes wird sicherlich post so eine Antwort sollten Sie lieber das "pure C++" Geschmack.
Update: Eigentlich die iostreams-version ist nicht viel mehr schrecklich. (So lange, wie Sie nicht möchten, wissenschaftlichen float Formatierung oder hex ausgegeben.) Hier geht es:
Mehr Leute sind vertraut mit
%d
als mit%i
.Ich fügte hinzu, die iostreams/iomanip-version für eine gute Maßnahme. Ist es nicht eigentlich schade.
oder einfach eine
std::ostream format_cout(std::cout.rdbuf());
und legen Sie die flags auf den separaten stream zu vermeiden das Chaosoder verwenden Sie ostringstream für die Formatierung, und dann übergeben Sie den string, cout
InformationsquelleAutor Kerrek SB
C, verwenden Sie "%6d", um anzugeben, drucken, d.h.
Für c++,
Vergessen Sie nicht
#include <iomanip>
.Verwendung von cout empfohlen ist, über printf () für type Gründen der Sicherheit.
Wenn ich mich richtig erinnere, Boost hat eine Typ-sichere Ersatz für printf verwenden, so können Sie
dass, anstatt benötigen Sie die format-string, args form.
setw
müssen aufgerufen werden, bevor jedes - Betrieb?InformationsquelleAutor moshbear
For fun:
Ausgabe:
InformationsquelleAutor sehe