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?

Était-ce utile?

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
scroll top