溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

C++之格式化輸出

發(fā)布時間:2020-06-24 18:46:21 來源:網(wǎng)絡(luò) 閱讀:851 作者:101MHz 欄目:移動開發(fā)

  每個輸出流都有 precision 成員函數(shù),一旦為某個輸出流調(diào)用了 precision 函數(shù),向該流輸出帶小數(shù)點的數(shù)字時候,要么總共保留兩位有效數(shù)字,要么在小數(shù)點之后保留兩位,具體實現(xiàn)方式由編譯器決定。precision函數(shù)只對指定的流生效。

  setf 成員函數(shù)是set flags的縮寫,不是set format的縮寫!是以二選一的方式來做一件事情的指令。

ios::fixed  標(biāo)志導(dǎo)致 流 采用 定點計數(shù)法 來輸出double類型的數(shù)字,而不是用采用 e記數(shù)法

ios::showpoint 標(biāo)志要求 流 總是在 浮點數(shù) 中包含小數(shù)點。

ios::scientific 標(biāo)志會用 e記數(shù)法 輸出數(shù)字。

ios::showpos 標(biāo)志正整數(shù)前會輸出 + 號

ios::right標(biāo)志如果使用,同時使用了 width 指定了域?qū)挘敵龅南乱豁棔捎?右對齊。默認為此項

ios::left標(biāo)志如果使用,同時使用了 width 指定了域?qū)?,輸出的下一項會采?左對齊


  width 成員函數(shù)用來設(shè)置 域?qū)挕@纾?/p>

    cout << "a";    
    cout.width(4);
    cout << 7 << endl;

  則輸出 a   7。a與7之間有3個空格,因為系統(tǒng)默認是設(shè)置 ios::right 右對齊。

  注意 width 成員函數(shù)只適應(yīng)于下一個要輸出的項,如果要輸出多個項,要調(diào)用多次width,如果嫌麻煩,可以使用流操縱元 setw。

  設(shè)置的任何標(biāo)志都可以取消設(shè)置,通過調(diào)用 unsetf 成員函數(shù)即可取消設(shè)置,例如:

    cout.unsetf(ios::showpos);

  即可取消正整數(shù)前面顯示 + 號。

  setw 和 setprecision 操縱元。

    操縱元是以非傳統(tǒng)的方式調(diào)用的函數(shù)。操縱元位于插入操作符 << 之后。兩個操縱元均在 iomanip 庫中,要想使用,需要調(diào)用該庫。

  setw 操縱元和 width 成員函數(shù)作用一樣,要想多次設(shè)置域?qū)?,需要調(diào)用多次 setw 操縱元。實際上,setw 操縱元就是調(diào)用了 width 成員函數(shù)。如下代碼:

    cout << "a" << set(5) << 1    
                << set(5) << 2
                << set(7) << 3 << endl;

該語句輸出為:a    1    2      3。其中 1、2 前面有4個空格,3 前面有 6 個空格。

  setprecision 操縱元和 precision 成員函數(shù)功能一樣。如下代碼:

    cout.setf(ios::fixed);
    cout.setf(ios::showpoint);
    cout << "a" << setprecision(2) << 1.2
                                 << 2.3 << endl;

  setprecision 操縱元與 precision 成員函數(shù)一樣,設(shè)置之后一直生效。上例輸出結(jié)果:1.20 2.30。


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI