1、數的進制
默認進制:
默認狀態下,數據按十進制輸入輸出。如果要求按八進制或十六進制輸入輸出,在cin或cout中必須指明相應的數據形式,oct為八進制,hex為十六進制,dec為十進制。
1 int i, j, k, l; 2 cout<<”Input i(oct), j(hex), k(hex), l(dec):”<<endl; 3 cin>>oct>>i; //輸入為八進制數 4 cin>>hex>>j; //輸入為十六進制數 5 cin>>k; //輸入仍為十六進制數 6 cin>>dec>>l; //輸入為十進制數 7 cout<<”hex:”<<”i=”<<hex<<i<<endl; 8 cout<<”dec:”<<”j=”<<dec<<j<<′\t′<<”k=”<<k<<endl; 9 cout<<”oct:”<<”l=”<<oct<<l; 10 cout<<dec<<endl; //恢復十進制輸出狀態 11 12 【執行結果】: 13 (1)輸出提示:Input i(oct), j(hex), k(hex), l(dec): 14 (2)此時從鍵盤輸入: 032 0x3f 0xa0 17 <CR> 15 (3)輸出結果為: 16 17 hex:i=1a 18 dec:j=63 k=160 19 oct:l=21
幾點說明:
使用不帶.h的頭文件<iostream>時,必須在cin中指明數制,否則從鍵盤輸入時,不認八進制和十六進制數開頭的0和0x標志。指明后可省略0和0x標志。
進制控制只適用於整型變量,不適用於實型和字符型變量。
輸入數據的格式、個數和類型必須與cin中的變量一一對應,否則不僅使輸入數據錯誤,而且影響后面其他數據的正確輸入。
在cin或cout中指明數制后,該數制將一直有效,直到重新指明使用其他數制。
2、數據間隔
常用設置方法:輸出空格符或回車換行符。
指定數據輸出寬度:用C++提供的函數setw()指定輸出數據項的寬度。setw()括號中通常給出一個正整數值,用於限定緊跟其后的一個數據項的輸出寬度。如:setw(8)表示緊跟其后的數據項的輸出占8個字符寬度。
1 int i=2, j=3; 2 float x=2.6, y=1.8; 3 cout<<setw(6)<<i<<setw(10)<<j<<endl; 4 cout<<setw(10)<<i*j<<endl; 5 cout<<setw(8)<<x<<setw(8)<<y<<endl; 6 7 則輸出結果為: 8 2 3 9 6 10 2.6 1.8
setw()只能限定緊隨其后的一個數據項,輸出后即回到默認輸出方式。
使用setw()必須在程序開頭再增加一句: #include<iomanip>
