Frage

Ich verstehe, dass Sie iomanip einstellen ein Präzisions Flaggen für Schwimmer verwenden können (zum Beispiel 2,0000 haben im Gegensatz zu 2.00).

Gibt es eine Möglichkeit möglich, dies zu tun, für ganze Zahlen?

Ich möchte eine Hex-Zahl zu Anzeige als 000e8a00 anstatt nur e8a00 oder 00000000 statt 0.

Ist das möglich in C ++, die Standardbibliotheken mit?

War es hilfreich?

Lösung

Mit Manipulatoren:

std::cout << std::setfill('0') << std::setw(8) << std::hex << 0 << std::endl;

Ohne Manipulatoren:

std::cout.fill('0');
std::cout.width(8);
std::cout.setf(std::ios::hex, std::ios::basefield);
std::cout << 42 << std::endl;

Andere Tipps

Sie können dies auch mit boost :: Format, das finde ich oft die Eingabe speichert:

std::cout << boost::format("%08x\n") % 0xe8a00;

Es ermöglicht auch ein paar nette Wiederverwendung von Code, wenn Sie mehrere Orte haben Sie die gleiche Formatierung tun müssen:

boost::format hex08("%08x");
std::cout << hex08 % 0xe8aa << std::endl;
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top