[001]C++ Cout格式化

來源:互聯網
上載者:User

在C中,如果存在一個int變數,我們要將其轉換為八進位、十六進位等輸出的時候,這個是非常簡單的,只需要在printf的時候選擇相對應的就行了。

但是在C++中,如果單純的使用cout,這個是怎麼實現的呢?

要控制整數以什麼形式來顯示,可以使用dec、hex、oct控制符,例如:

 hex(cout);

將cout對象的格式設定為十六進位,完成上述設定後,程式將以十六進位形式列印整數值,直到其他選項來改變格式狀態為止。

(需要注意的是,控制符不是成員函數,因此不需要通過對象來調用)

通常的使用方式為:

cout<<hex;

例:

 1 #include<iostream> 2 int main() { 3     using namespace std; 4     cout << "enter:"; 5     int n; 6     cin >> n; 7  8     cout << hex; 9     cout << n << "\n";10 11     cout << oct << n << "\n";12 13     dec(cout);14     cout << n << "\n";15 16     return 0;        17 }

運行情況為:

enter:13d1513

除了轉換進位外,還有其他需要特別注意的地方:

   在新式實現中,浮點類型被顯示為6位,末尾的0不顯示。數字以定點標記法顯示還是以科學計數法表示,取決於它的值。具體來說,當指數大於等於6或小於等於-5時,將使用科學計數法表示。如:

double f = 1.200;cout <<  f << "\n";cout << (f  +  1.0 /  9.0)  << “/n”;double f1 = 1.67E2;cout << f1 << "\n";cout << (f1 * 1.0e4) << "\n";

輸出就變為:

1.21.311111671.67e+006

1.200末尾的0沒有顯示出來,但末尾不帶0的浮點值後面將有6個空格

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.