2010-02-17 7 views
3
cout << hex << 11 << endl; 
    cout << 12 << endl; 

imprimera:Décochez un modificateur cout?

un

b

Si je Cout 13, il sera imprimé 'c'. Comment puis-je supprimer le modificateur hexadécimal à partir de maintenant afin qu'il imprime juste 13? C'est probablement simple mais j'ai essayé de chercher la réponse ailleurs. Merci.

Répondre

5

Ecrire dans votre code:

cout << dec << 13 
1
using namespace std; 
cout<<hex<<11<<endl; 
cout<<dec<<12<<endl; 
cout<<13<<endl; 
5

Vous pouvez regarder la bibliothèque Boost iostream state saver. Cela rend assez facile l'enregistrement d'un état, la définition d'un nouvel état, puis la restauration de l'état d'origine (enregistré).

+0

Cela fonctionne dans le cas général, mais semble trop pour juste un changement de base. +1 dans tous les cas. –

+0

@BillyONeal: Si vous savez vraiment que vous allez seulement changer une chose, alors c'est probablement trop. Bien que cela ait pu être incorrect, mon hypothèse était que la base était un exemple, pas nécessairement le seul attribut qui serait impliqué. –

+0

C'est pourquoi je vous ai donné +1;) –