Welche Direktive kann ich einen Stream geben, um führende Nullen auf eine Zahl in C ++ zu drucken?

8

Ich weiß, wie es in hex zu bewirken ist:

%Vor%

Jetzt möchte ich immer eine führende Null drucken, wenn myNum nur eine Ziffer benötigt:

%Vor%

Wie kann ich das eigentlich machen?

    
WilliamKF 27.02.2011, 02:33
quelle

5 Antworten

13

Es ist nicht so sauber, wie ich es gerne hätte, aber Sie können das "fill" -Zeichen auf "0" setzen, um die Aufgabe zu erledigen:

%Vor%

Beachten Sie jedoch, dass das Zeichen, das Sie für die Füllung festgelegt haben, "sticky" ist, also bleibt es "0", bis Sie es in ein Leerzeichen mit etwas wie your_stream << std::setfill(' '); wiederherstellen.

    
Jerry Coffin 27.02.2011, 02:42
quelle
2

Das funktioniert:

%Vor%

Ausgabe: 023

    
jterrace 27.02.2011 02:44
quelle
1
%Vor%

Siehe auch: Ссылка

    
levis501 27.02.2011 02:42
quelle
1

Sehen Sie sich die Manipulatoren setfill und setw in & lt; iomanip & gt;

an     
Ted Hopp 27.02.2011 02:42
quelle
0

Es ist ein bisschen schmutzig, aber ein Makro hat einen guten Job für mich gemacht:

%Vor%

Also können Sie es tun:

%Vor%

Die Ausgabe:

  

Mein Hexadezimalwert = 0x00012345

    
marcelo.guedes 22.05.2014 22:41
quelle