9
votes

Quelle directive puis-je donner un flux pour imprimer des zéros de premier plan sur un numéro en C ++?

Je sais comment le faire en hex:

unsigned char myNum = 0x8;
// Pretend std::hex takes an argument to specify number of digits.
clog << "Output: " << std::hex(2) << int(myNum) << endl;
// Desired:
//   Output: 08


2 commentaires

Vous vous rendez compte que quiconque tente de lire vos numéros hexagonaux de retour les voir comme des nombres octals? Je ne faisais que demander.:-)


Vrai, mais c'est pour la consommation humaine, pas la consommation d'ordinateur.


5 Réponses :


1
votes
glog << "Output: " << std::setfill('0') << std::hex(2) << int(myNum) << endl;
See also: http://www.arachnoid.com/cpptutor/student3.html

0 commentaires

1
votes

Regardez le regard sur le SETFILLD et SETW manipulateurs dans


0 commentaires

14
votes

Ce n'est pas aussi propre que je voudrais, mais vous pouvez modifier le caractère "Remplir" sur un "0" pour faire le travail: xxx

note, cependant, que le personnage Vous êtes prêt pour le remplissage est "Sticky", donc ça va rester "0" après cela jusqu'à ce que vous le restais à un espace avec quelque chose comme votre_stream << std :: SETFILL (''); .


0 commentaires

2
votes

Ceci fonctionne: xxx

sortie: 023


0 commentaires

0
votes

C'est un peu sale, mais une macro a fait un bon travail pour moi: xxx

alors vous pouvez le faire: xxx

La sortie:

ma valeur hexagonale = 0x00012345


0 commentaires