Wie C ++ Zahlenformatierung auf eine bestimmte Genauigkeit einzurichten?
-
22-09-2019 - |
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?
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