2010-11-07 16 views
10

Est-il possible de créer des numéros hexadécimaux ostream avec les caractères A-F et non a-f?Comment puis-je diffuser des nombres hexadécimaux avec A-F (plutôt que a-f)?

int x = 0xABC; 
std::cout << std::hex << x << std::endl; 

Ce sorties abc alors que je préférerais voir ABC.

+2

Est-ce que le descendant de cette question peut avoir la gentillesse de m'expliquer ce qui est si criminel à ce sujet? question? En fait, j'avais ouvert MSDN pour 'hex' dans l'espoir de trouver la réponse, mais je ne l'ai pas fait. Alors, quel est le problème avec cette question? –

+0

Ne sait pas, mais voici un upvote pour le contrer. J'adore faire ça parce que c'est juste (en particulier pour ceux qui ont une vraie question - SO est censé être pour tous les niveaux de développeur, pas seulement désagréables comme moi) mais surtout parce que ça dérange les downvoters du drive-by qui ne peut même pas être dérangé de laisser un commentaire afin qu'une question puisse être améliorée. Bien sûr, ils peuvent bien baisser ma réponse en rétribution, mais ce n'est pas comme si je suis à court de rep :-) – paxdiablo

+0

@paxdiablo: mon sentiment à propos de représailles downvotes est que toute personne susceptible de s'impliquer dans de telles absurdités a moins de la moitié de mon représentant, donc je vais gagner celui-là. Comme j'ai moins de la moitié de votre rep, vous pouvez survivre deux fois plus ... –

Répondre

12

Oui, vous pouvez utiliser std::uppercase, qui touche à virgule flottante et la sortie entier hexadécimal:

std::cout << std::hex << std::uppercase << x << std::endl; 

comme dans le programme complet ci-dessous:

#include <iostream> 
#include <iomanip> 

int main (void) { 
    int x = 314159; 
    std::cout << std::hex << x << " " << std::uppercase << x << std::endl; 
    return 0; 
} 

qui sort:

4cb2f 4CB2F 
+1

Ce modificateur affectera-t-il uniquement les nombres hexadécimaux, ou affectera-t-il aussi les cordes? –

+2

Numéros hexadécimaux et exposants en notation scientifique. Si vous voulez faire des chaînes, voir http://stackoverflow.com/questions/735204/convert-a-string-in-c-to-upper-case – paxdiablo