Affichage Hexa 0x000000001 et pas 0x1

Signaler
Messages postés
14
Date d'inscription
jeudi 25 mai 2006
Statut
Membre
Dernière intervention
30 avril 2007
-
Messages postés
2
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
27 mars 2010
-
salut,

j'aurais aimé savoir si il existait une option dans cout pour afficher les zeros 'inutile' lors de l'affichage d'un nombre en hexa.

Par inutile, j'entend les zeros placé avant le premier 1.

Je voudrais afficher 00000001 quand j'affiche 1 et non juste 1.

J'utilise cout << hex << .... pour l'instant.

J espere que vous voyez ce que je veux faire
Laurent

5 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
avec printf :
printf("%08X", val);

avec cout : je sais pas
Messages postés
6535
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
cout.width(8); // nombre minimal de chiffres en tout
cout.fill('0'); // préfixe de remplissage
cout << 23 << endl;
Messages postés
746
Date d'inscription
vendredi 17 juin 2005
Statut
Membre
Dernière intervention
23 mai 2007
8
ou alors avec #include

cout << std::setw(8) << 23 << std::endl;
Messages postés
199
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
28 février 2008

Nan ça modifie juste le gabarit, il manque le caractère de remplissage : setfill() ou stream.fill()...

cout << "0x" << setw(8) << setfill('0') << hex << 23 << endl;

___________________
MVS - Most Valuable Student ( Microsoft)
Messages postés
2
Date d'inscription
mardi 24 février 2009
Statut
Membre
Dernière intervention
27 mars 2010

mmmm
le meme probleme.
merci
sa marche a 100%
cout << setw(nombre total de numero) << setfill('ne pas ignorer ce numero') << hex << variable.
exemple :
afficher 01 au lieu de 1
int var = 0x01
cout << setw(2) << setfill('0') << hex << var;
ayyy n oublie pas d inclure le header
"iomanip.h"