在C++中,我們常用到的一些關於流操縱算子,來對我們程序中的輸出結果進行格式化的輸出。
| 流操縱算子 | 作 用 | |
|---|---|---|
| *dec | 以十進制形式輸出整數 | 常用 |
| hex | 以十六進制形式輸出整數 | |
| oct | 以八進制形式輸出整數 | |
| fixed | 以普通小數形式輸出浮點數 | |
| scientific | 以科學計數法形式輸出浮點數 | |
| left | 左對齊,即在寬度不足時將填充字符添加到右邊 | |
| *right | 右對齊,即在寬度不足時將填充字符添加到左邊 | |
| setbase(b) | 設置輸出整數時的進制,b=8、10 或 16 | |
| setw(w) | 指定輸出寬度為 w 個字符,或輸人字符串時讀入 w 個字符 | |
| setfill(c) | 在指定輸出寬度的情況下,輸出的寬度不足時用字符 c 填充(默認情況是用空格填充) | |
| setprecision(n) | 設置輸出浮點數的精度為 n。 在使用非 fixed 且非 scientific 方式輸出的情況下,n 即為有效數字最多的位數,如果有效數字位數超過 n,則小數部分四舍五人,或自動變為科學計 數法輸出並保留一共 n 位有效數字. 在使用 fixed 方式和 scientific 方式輸出的情況下,n 是小數點后面應保留的位數 |
|
| setiosflags (標志) | 將某個輸出格式標志置為 1 | |
| resetiosflags(標志) | 將某個輸出格式標志置為 0 | |
程序如下:
#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; }
運行結果:

