C++格式化輸出


在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;
}

 

運行結果:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM