Comment configurer C ++ Nombre de mise en forme à une certaine précision?
-
22-09-2019 - |
Question
Je comprends que vous pouvez utiliser pour définir un iomanip drapeaux de précision pour les flotteurs (par exemple ont 2,0000, par opposition à 2,00).
Y at-il un moyen possible de le faire, pour les entiers?
Je voudrais un numéro hexadécimal à afficher comme 000e8a00 plutôt que e8a00 ou 00000000 plutôt que 0.
Est-ce possible en C ++, en utilisant les bibliothèques standard?
La solution
Avec Manipulateurs:
std::cout << std::setfill('0') << std::setw(8) << std::hex << 0 << std::endl;
Sans Manipulateurs:
std::cout.fill('0');
std::cout.width(8);
std::cout.setf(std::ios::hex, std::ios::basefield);
std::cout << 42 << std::endl;
Autres conseils
Vous pouvez aussi le faire avec boost :: format, que je trouve souvent sauve en tapant:
std::cout << boost::format("%08x\n") % 0xe8a00;
Il permet également une réutilisation de code agréable, si vous avez plusieurs endroits que vous devez faire la même mise en forme:
boost::format hex08("%08x"); std::cout << hex08 % 0xe8aa << std::endl;
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow