1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      如何在C++中利用cout進(jìn)行格式化輸出-創(chuàng)新互聯(lián)

      這篇文章將為大家詳細(xì)講解有關(guān)如何在C++中利用cout進(jìn)行格式化輸出,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

      成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供張北企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、H5建站、小程序制作等業(yè)務(wù)。10年已為張北眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。

      使用流操作算子


      C++ 中常用的輸出流操縱算子如表 1 所示,它們都是在頭文件 iomanip 中定義的;要使用這些流操縱算子,必須包含該頭文件。

      注意:“流操縱算子”一欄中的星號*不是算子的一部分,星號表示在沒有使用任何算子的情況下,就等效于使用了該算子。例如,在默認(rèn)情況下,整數(shù)是用十進(jìn)制形式輸出的,等效于使用了 dec 算子。

      流操縱算子作 用
      *dec以十進(jìn)制形式輸出整數(shù)常用
      hex以十六進(jìn)制形式輸出整數(shù)|
      oct以八進(jìn)制形式輸出整數(shù)|
      fixed以普通小數(shù)形式輸出浮點(diǎn)數(shù)|
      scientific以科學(xué)計數(shù)法形式輸出浮點(diǎn)數(shù)|
      left左對齊,即在寬度不足時將填充字符添加到右邊|
      *right右對齊,即在寬度不足時將填充字符添加到左邊|
      setbase(b)設(shè)置輸出整數(shù)時的進(jìn)制,b=8、10 或 16|
      setw(w)指定輸出寬度為 w 個字符,或輸人字符串時讀入 w 個字符|
      setfill(c)在指定輸出寬度的情況下,輸出的寬度不足時用字符 c 填充(默認(rèn)情況是用空格填充)|
      setprecision(n)設(shè)置輸出浮點(diǎn)數(shù)的精度為 n。 在使用非 fixed 且非 scientific 方式輸出的情況下,n 即為有效數(shù)字最多的位數(shù),如果有效數(shù)字位數(shù)超過 n,則小數(shù)部分四舍五人,或自動變?yōu)榭茖W(xué)計 數(shù)法輸出并保留一共 n 位有效數(shù)字。 在使用 fixed 方式和 scientific 方式輸出的情況下,n 是小數(shù)點(diǎn)后面應(yīng)保留的位數(shù)。|
      setiosflags(flag)將某個輸出格式標(biāo)志置為 1|
      resetiosflags(flag)將某個輸出格式標(biāo)志置為 0|
      boolapha把 true 和 false 輸出為字符串不常用
      *noboolalpha把 true 和 false 輸出為 0、1-
      showbase輸出表示數(shù)值的進(jìn)制的前綴-
      *noshowbase不輸出表示數(shù)值的進(jìn)制.的前綴-
      showpoint總是輸出小數(shù)點(diǎn)-
      *noshowpoint只有當(dāng)小數(shù)部分存在時才顯示小數(shù)點(diǎn)-
      showpos在非負(fù)數(shù)值中顯示 +-
      *noshowpos在非負(fù)數(shù)值中不顯示 +-
      *skipws輸入時跳過空白字符-
      noskipws輸入時不跳過空白字符-
      uppercase十六進(jìn)制數(shù)中使用 A~E。若輸出前綴,則前綴輸出 0X,科學(xué)計數(shù)法中輸出 E-
      *nouppercase十六進(jìn)制數(shù)中使用 a~e。若輸出前綴,則前綴輸出 0x,科學(xué)計數(shù)法中輸出 e。-
      internal數(shù)值的符號(正負(fù)號)在指定寬度內(nèi)左對齊,數(shù)值右對 齊,中間由填充字符填充。

      '|':代表常用,'-':代表不常用

      流操作算子的使用方法


      使用這些算子的方法是將算子用 << 和 cout 連用。例如:

      cout << hex << 12 << "," << 24;

      這條語句的作用是指定以十六進(jìn)制形式輸出后面兩個數(shù),因此輸出結(jié)果是:

      c, 18


      setiosflags() 算子


      setiosflags() 算子實(shí)際上是一個庫函數(shù),它以一些標(biāo)志作為參數(shù),這些標(biāo)志可以是在 iostream 頭文件中定義的以下幾種取值,它們的含義和同名算子一樣。

      標(biāo) 志作 用
      ios::left輸出數(shù)據(jù)在本域?qū)挿秶鷥?nèi)向左對齊
      ios::right輸出數(shù)據(jù)在本域?qū)挿秶鷥?nèi)向右對齊
      ios::internal數(shù)值的符號位在域?qū)拑?nèi)左對齊,數(shù)值右對齊,中間由填充字符填充
      ios::dec設(shè)置整數(shù)的基數(shù)為 10
      ios::oct設(shè)置整數(shù)的基數(shù)為 8
      ios::hex設(shè)置整數(shù)的基數(shù)為 16
      ios::showbase強(qiáng)制輸出整數(shù)的基數(shù)(八進(jìn)制數(shù)以 0 開頭,十六進(jìn)制數(shù)以 0x 打頭)
      ios::showpoint強(qiáng)制輸出浮點(diǎn)數(shù)的小點(diǎn)和尾數(shù) 0
      ios::uppercase在以科學(xué)記數(shù)法格式 E 和以十六進(jìn)制輸出字母時以大寫表示
      ios::showpos對正數(shù)顯示“+”號
      ios::scientific浮點(diǎn)數(shù)以科學(xué)記數(shù)法格式輸出
      ios::fixed浮點(diǎn)數(shù)以定點(diǎn)格式(小數(shù)形式)輸出
      ios::unitbuf每次輸出之后刷新所有的流
      ios::stdio每次輸出之后清除 stdout, stderr

      這些標(biāo)志實(shí)際上都是僅有某比特位為 1,而其他比特位都為 0 的整數(shù)。

      多個標(biāo)志可以用|運(yùn)算符連接,表示同時設(shè)置。例如:

      cout << setiosflags(ios::scientific|ios::showpos) << 12.34;

      輸出結(jié)果是:

      +1.234000e+001


      如果兩個相互矛盾的標(biāo)志同時被設(shè)置,如先設(shè)置 setiosflags(ios::fixed),然后又設(shè)置 setiosflags(ios::scientific),那么結(jié)果可能就是兩個標(biāo)志都不起作用。因此,在設(shè)置了某標(biāo)志,又要設(shè)置其他與之矛盾的標(biāo)志時,就應(yīng)該用 resetiosflags 清除原先的標(biāo)志。例如下面三條語句:

      cout << setiosflags(ios::fixed) << 12.34 << endl;
      cout << resetiosflags(ios::fixed) << setiosflags(ios::scientific | ios::showpos) << 12.34 << endl;
      cout << resetiosflags(ios::showpos) << 12.34 << endl; //清除要輸出正號的標(biāo)志

      輸出結(jié)果是:


      12.340000
      +1.234000e+001
      1.234000e+001

      綜合示例


      關(guān)于流操縱算子的使用,來看下面的程序。

      #include 
      #include 
      using namespace std;
      int main() {
        int n = 141;
        // 1) 分別以十六進(jìn)制、十進(jìn)制、八進(jìn)制先后輸出 n
        cout << "1)" << hex << n << " " << dec << n << " " << oct << n << endl;
        double x = 1234567.89, y = 12.34567;
        // 2)保留5位有效數(shù)字
        cout << "2)" << setprecision(5) << x << " " << y << " " << endl;
        // 3)保留小數(shù)點(diǎn)后面5位
        cout << "3)" << fixed << setprecision(5) << x << " " << y << endl;
        // 4)科學(xué)計數(shù)法輸出,且保留小數(shù)點(diǎn)后面5位
        cout << "4)" << scientific << setprecision(5) << x << " " << y << endl;
        // 5)非負(fù)數(shù)顯示正號,輸出寬度為12字符,寬度不足則用 * 填補(bǔ)
        cout << "5)" << showpos << fixed << setw(12) << setfill('*') << 12.1
           << endl;
        // 6)非負(fù)數(shù)不顯示正號,輸出寬度為12字符,寬度不足則右邊用填充字符填充
        cout << "6)" << noshowpos << setw(12) << left << 12.1 << endl;
        // 7)輸出寬度為 12 字符,寬度不足則左邊用填充字符填充
        cout << "7)" << setw(12) << right << 12.1 << endl;
        // 8)寬度不足時,負(fù)號和數(shù)值分列左右,中間用填充字符填充
        cout << "8)" << setw(12) << internal << -12.1 << endl;
        cout << "9)" << 12.1 << endl;
        return 0;
      }

      程序的輸出結(jié)果是:

      1)8d 141 215
      2)1.2346e+06 12.346
      3)1234567.89000 12.34567
      4)1.23457e+06 1.23457e+01
      5)***+12.10000
      6)12.10000****
      7)****12.10000
      8)-***12.10000
      9)12.10000


      需要注意的是,setw() 算子所起的作用是一次性的,即只影響下一次輸出。每次需要指定輸出寬度時都要使用 setw()。因此可以看到,第 9) 行的輸出因?yàn)闆]有使用 setw(),輸出的寬度就不再是前面指定的 12 個字符。

      在讀入字符串時,setw() 還能影響 cin 的行為。例如下面的程序:

      #include 
      #include 
      using namespace std;
      int main() {
        string s1, s2;
        cin >> setw(4) >> s1 >> setw(3) >> s2;
        cout << s1 << "," << s2 << endl;
        return 0;
      }

      輸入:


      1234567890↙

      程序的輸出結(jié)果是:


      1234,567

      說明setw(4)使得讀入 s1 時,只讀入 4 個字符,其后的setw(3)使得讀入 s2 時只讀入 3 個字符。

      setw() 用于 cin 時,同樣只影響下一次的輸入。

      思考題:setw() 究竟是如何實(shí)現(xiàn)的,以至于能和 cout 連用來指定輸出寬度?自行查看編譯器所帶的 iomanip 頭文件,然后寫一個功能和 setw() 完全相同的 mysetw()。

      調(diào)用cout的成員函數(shù)


      ostream 類有一些成員函數(shù),通過 cout 調(diào)用它們也能用于控制輸出的格式,其作用和流操縱算子相同,如表 3 所示。

      成員函數(shù)作用相同的流操縱算子說明
      precision(n)setprecision(n)設(shè)置輸出浮點(diǎn)數(shù)的精度為 n。
      width(w)setw(w)指定輸出寬度為 w 個字符。
      fill(c)setfill (c)在指定輸出寬度的情況下,輸出的寬度不足時用字符 c 填充(默認(rèn)情況是用空格填充)。
      setf(flag)setiosflags(flag)將某個輸出格式標(biāo)志置為 1。
      unsetf(flag)resetiosflags(flag)將某個輸出格式標(biāo)志置為 0。

      setf 和 unsetf 函數(shù)用到的flag,與setiosflags 和 resetiosflags 用到的完全相同。

      這些成員函數(shù)的用法十分簡單。例如下面的三行程序:

      cout.setf(ios::scientific);cout.precision(8);cout << 12.23 << endl;

      輸出結(jié)果是:


      1.22300000e+001


      關(guān)于如何在C++中利用cout進(jìn)行格式化輸出就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


      當(dāng)前題目:如何在C++中利用cout進(jìn)行格式化輸出-創(chuàng)新互聯(lián)
      文章轉(zhuǎn)載:http://www.ef60e0e.cn/article/dogjhg.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        嘉善县| 永嘉县| 蓝田县| 永修县| 顺昌县| 浮山县| 禄丰县| 五寨县| 邵东县| 县级市| 通化市| 广饶县| 华容县| 宿松县| 永昌县| 延川县| 保康县| 定州市| 当阳市| 蓝田县| 哈巴河县| 仙居县| 武强县| 临湘市| 原平市| 类乌齐县| 峨眉山市| 深州市| 黄龙县| 龙口市| 石柱| 高淳县| 河北区| 汤原县| 通许县| 宝清县| 棋牌| 尼木县| 化德县| 惠州市| 双牌县|