c++ cout

來源:互聯網
上載者:User
今天做實驗時,突然發現不會用cout以16進位輸出資料了,於是上網找之,發現下面的文字正是需要的,故帖於此,請需者自取之。
同時自我批評一下,連這麼基本的東西都不掌握......

此文來源:http://edept.seu.edu.cn/Extend/CLanguage/courses/JcnrCh01-8-3.htm

1.8.3   輸入輸出的格式控制


◆   1、數的進位

預設進位
預設狀態下,資料按十進位輸入輸出。如果要求按八進位或十六進位輸入輸出,在cin或cout中必須指明相應的資料形式,oct為八進位,hex為十六進位,dec為十進位。

舉例

int i, j, k, l;
cout<<”Input i(oct), j(hex), k(hex), l(dec):”<<endl;
cin>>oct>>i; //輸入為八位元
cin>>hex>>j; //輸入為十六進位數
cin>>k; //輸入仍為十六進位數
cin>>dec>>l; //輸入為十進位數
cout<<”hex:”<<”i=”<<hex<<i<<endl;
cout<<”dec:”<<”j=”<<dec<<j<<′\t′<<”k=”<<k<<endl;
cout<<”oct:”<<”l=”<<oct<<l;
cout<<dec<<endl; //恢複十進位輸出狀態

【執行結果】:
(1)輸出提示:Input i(oct), j(hex), k(hex), l(dec):
(2)此時從鍵盤輸入: 032 0x3f 0xa0 17 <CR>
(3)輸出結果為:

hex:i=1a
dec:j=63 k=160
oct:l=21

幾點說明:

使用不帶.h的標頭檔<iostream>時,必須在cin中指明數制,否則從鍵盤輸入時,不認八進位和十六進位數開頭的0和0x標誌。指明後可省略0和0x標誌。

進位控制只適用於整型變數,不適用於實型和字元型變數。

輸入資料的格式、個數和類型必須與cin中的變數一一對應,否則不僅使輸入資料錯誤,而且影響後面其他資料的正確輸入。

在cin或cout中指明數制後,該數制將一直有效,直到重新指明使用其他數制。

◆   2、資料間隔

常用設定方法:輸出空格符或斷行符號分行符號。

指定資料輸出寬度:用C++提供的函數setw()指定輸出資料項目的寬度。setw()括弧中通常給出一個正整數值,用於限定緊跟其後的一個資料項目的輸出寬度。如:setw(8)表示緊跟其後的資料項目的輸出佔8個字元寬度。

舉例

int i=2, j=3;
float x=2.6, y=1.8;
cout<<setw(6)<<i<<setw(10)<<j<<endl;
cout<<setw(10)<<i*j<<endl;
cout<<setw(8)<<x<<setw(8)<<y<<endl;

則輸出結果為:
      2          3
          6
      2.6      1.8

說明

如果資料的實際寬度小於指定寬度,按靠右對齊的方式在左邊留空,如果資料的實際寬度大於指定寬度,則按實際寬度輸出,即指定寬度失效。

setw()只能限定緊隨其後的一個資料項目,輸出後即回到預設輸出方式。

使用setw()必須在程式開頭再增加一句: #include<iomanip>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.