部分轉載自:
https://www.cnblogs.com/single-dont/p/10479514.html https://blog.csdn.net/beashaper_/article/details/79372420
在C++中,我們常用到的一些關於流操縱算子,來對我們程序中的輸出結果進行格式化的輸出。
操作符 | 含義 | 輸入輸出 |
---|---|---|
dec | 以十進制顯示(默認設置) | I/O |
hex | 以十六進制顯示 | I/O |
oct | 以八進制顯示 | I/O |
Setbase(int n) | 設置數制基數爲n(=0,8,10,16),0表示默認(十進制) | |
ws | 提取空白字符 | I |
ends | 插入空字符 | O |
endl | 插入換行符,然後刷新ostream緩衝區 | O |
flush | ostream緩衝區 | O |
resetiosflags(long) | 清除參數所指定的標誌位 | |
setiosflags(long) | 設置參數所指定的標誌位 | |
setfill(char) | 設置填充字符 | O |
setprecision(int) | 設置浮點數輸出的有效數字位數 | O |
setw(int) | 設置輸出數據項的域寬 | O |
流操縱算子 | 作 用 | |
---|---|---|
*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 是小數點後面應保留的位數 |
測試代碼如下:
#include <iostream>
#include <iomanip>
using namespace std;
/*
C++中的格式化輸出:控制小數點、十六進制、八進制、二進制.......
*/
int main(int argc, char const *argv[])
{
cout<<"C++中的格式化輸出"<<endl;
double a = 12.23467;
//保留指定位小數
cout << "double a = " << a << endl;
cout << "保留3位有效小數: " << fixed << setprecision(3) << a << endl;
cout << "保留4位有效小數: " << fixed << setprecision(4) << a << endl;
cout << "保留5位有效小數: " << fixed << setprecision(5) << a << endl;
int n = 104;
//指定進制
cout << "int n = " << n << endl;
cout << "十六進制: " << hex << n << endl;
cout << "十進制: " << dec << n << endl;
cout << "八進制: " << oct << n << endl;
return 0;
}
輸出結果如圖所示: