在C++中,咱們經常使用到的一些關於流操縱算子,來對咱們程序中的輸出結果進行格式化的輸出。ios
流操縱算子 | 做 用 | |
---|---|---|
*dec | 以十進制形式輸出整數 | 經常使用 |
hex | 以十六進制形式輸出整數 | |
oct | 以八進制形式輸出整數 | |
fixed | 以普通小數形式輸出浮點數 | |
scientific | 以科學計數法形式輸出浮點數 | |
left | 左對齊,即在寬度不足時將填充字符添加到右邊 | |
*right | 右對齊,即在寬度不足時將填充字符添加到左邊 | |
setbase(b) | 設置輸出整數時的進制,b=八、10 或 16 | |
setw(w) | 指定輸出寬度爲 w 個字符,或輸人字符串時讀入 w 個字符 | |
setfill(c) | 在指定輸出寬度的狀況下,輸出的寬度不足時用字符 c 填充(默認狀況是用空格填充) | |
setprecision(n) | 設置輸出浮點數的精度爲 n。 在使用非 fixed 且非 scientific 方式輸出的狀況下,n 即爲有效數字最多的位數,若是有效數字位數超過 n,則小數部分四舍五人,或自動變爲科學計 數法輸出並保留一共 n 位有效數字. 在使用 fixed 方式和 scientific 方式輸出的狀況下,n 是小數點後面應保留的位數 |
|
setiosflags (標誌) | 將某個輸出格式標誌置爲 1 | |
resetiosflags(標誌) | 將某個輸出格式標誌置爲 0 |
程序以下:spa
#include <iostream> #include <iomanip> using namespace std; int main() { int n = 141; //1) 分別以十六進制、十進制、八進制前後輸出 n cout << "1)" << hex << n << " " << dec << n << " " << oct << n << endl; double x = 1234567.89, y = 12.34567; //2)保留5位有效數字 cout << "2)" << setprecision(5) << x << " " << y << " " << endl; //3)保留小數點後面5位 cout << "3)" << fixed << setprecision(5) << x << " " << y << endl; //4)科學計數法輸出,且保留小數點後面5位 cout << "4)" << scientific << setprecision(5) << x << " " << y << endl; //5)非負數顯示正號,輸出寬度爲12字符,寬度不足則用 * 填補 cout << "5)" << showpos << fixed << setw(12) << setfill('*') << 12.1 << endl; //6)非負數不顯示正號,輸出寬度爲12字符,寬度不足則右邊用填充字符填充 cout << "6)" << noshowpos << setw(12) << left << 12.1 << endl; //7)輸出寬度爲 12 字符,寬度不足則左邊用填充字符填充 cout << "7)" << setw(12) << right << 12.1 << endl; //8)寬度不足時,負號和數值分列左右,中間用填充字符填充 cout << "8)" << setw(12) << internal << -12.1 << endl; cout << "9)" << 12.1 << endl; return 0; }
運行結果:code