Je veux faire:
int a = 255;
cout << a;
et lui montrer FF dans la sortie, comment pourrais-je faire cela?
Utilisation:
#include <iostream>
...
std::cout << std::hex << a;
Il existe de nombreuses autres options pour contrôler le formatage exact du numéro de sortie , telles que les zéros non significatifs et les majuscules / minuscules.
cout << hex << a << dec;
le changer.ios::fmtflags f(cout.flags());
et le restaurer avecout.flags(f);
.std::cout.flags(f);
std::hex
est défini dans<ios>
lequel est inclus par<iostream>
. Mais pour utiliser des éléments commestd::setprecision/std::setw/std::setfill
/ etc, vous devez inclure<iomanip>
.la source
Pour manipuler le flux à imprimer en hexadécimal, utilisez le
hex
manipulateur:Par défaut, les caractères hexadécimaux sont affichés en minuscules. Pour le changer en majuscules, utilisez le
uppercase
manipulateur:Pour remettre ultérieurement la sortie en minuscules, utilisez le
nouppercase
manipulateur:la source
nouppercase
- t- il changer la sortie en décimal?Si vous souhaitez imprimer un seul nombre hexadécimal, puis revenir au décimal, vous pouvez utiliser ceci:
la source
Je comprends que ce n'est pas ce que OP a demandé, mais je pense toujours qu'il vaut la peine de souligner comment le faire avec printf. Je préfère presque toujours l'utiliser sur std :: cout (même sans arrière-plan C précédent).
«2» définit la précision, «X» ou «x» définit la casse.
la source
printf("hello\n")
équivaut àfprintf(stdout, "hello\n")
. Plus utilement, vous pouvez passerstdout
(oustdin
, oustderr
) à une fonction qui prend unFILE*
argument.Il existe différents types de drapeaux et de masques que vous pouvez également utiliser. Veuillez consulter http://www.cplusplus.com/reference/iostream/ios_base/setf/ pour plus d'informations.
la source
std::hex
vous obtient le formatage hexadécimal, mais c'est une option avec état, ce qui signifie que vous devez enregistrer et restaurer l'état ou cela aura un impact sur toutes les sorties futures.Revenir naïvement à
std::dec
n'est bon que si c'est là que les indicateurs étaient auparavant, ce qui peut ne pas être le cas, en particulier si vous écrivez une bibliothèque.Cela combine la réponse de Greg Hewgill et les informations d' une autre question .
la source
Utilisez
std::uppercase
etstd::hex
pour formater la variable entièrea
à afficher au format hexadécimal.la source