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

將打印:取消一個cout修飾符?

一個

b

如果我清點13,它將被打印爲 'C'。如何從現在開始刪除十六進制修飾符,所以它只會打印13? 這可能很簡單,但我試圖在其他地方尋找答案。謝謝。

回答

5

寫在你的代碼:

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

你可能想看看了Boost的iostream state saver庫。這使得保存狀態,設置新狀態,然後恢復原始(保存)狀態相當容易。

+0

這適用於一般情況,但似乎矯枉過正只是基地的變化。 +1在任何情況下。 – 2010-02-17 16:08:54

+0

@BillyONeal:如果你真的知道你只會改變一件事,那麼它可能是矯枉過正的。雖然它可能是不正確的,但我的假設是,基地是一個例子,不一定是涉及的唯一屬性。 – 2010-02-17 16:29:51

+0

這就是我給你+1的原因;) – 2010-02-17 18:34:23