每個(gè)輸出流都有 precision 成員函數(shù),一旦為某個(gè)輸出流調(diào)用了 precision 函數(shù),向該流輸出帶小數(shù)點(diǎn)的數(shù)字時(shí)候,要么總共保留兩位有效數(shù)字,要么在小數(shù)點(diǎn)之后保留兩位,具體實(shí)現(xiàn)方式由編譯器決定。precision函數(shù)只對(duì)指定的流生效。
我們提供的服務(wù)有:成都網(wǎng)站制作、網(wǎng)站建設(shè)、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、博山ssl等。為千余家企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢(xún)和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的博山網(wǎng)站制作公司
setf 成員函數(shù)是set flags的縮寫(xiě),不是set format的縮寫(xiě)!是以二選一的方式來(lái)做一件事情的指令。
ios::fixed 標(biāo)志導(dǎo)致 流 采用 定點(diǎn)計(jì)數(shù)法 來(lái)輸出double類(lèi)型的數(shù)字,而不是用采用 e記數(shù)法
ios::showpoint 標(biāo)志要求 流 總是在 浮點(diǎn)數(shù) 中包含小數(shù)點(diǎn)。
ios::scientific 標(biāo)志會(huì)用 e記數(shù)法 輸出數(shù)字。
ios::showpos 標(biāo)志正整數(shù)前會(huì)輸出 + 號(hào)
ios::right標(biāo)志如果使用,同時(shí)使用了 width 指定了域?qū)?,輸出的下一?xiàng)會(huì)采用 右對(duì)齊。默認(rèn)為此項(xiàng)
ios::left標(biāo)志如果使用,同時(shí)使用了 width 指定了域?qū)?,輸出的下一?xiàng)會(huì)采用 左對(duì)齊
width 成員函數(shù)用來(lái)設(shè)置 域?qū)挕@纾?/p>
cout << "a"; cout.width(4); cout << 7 << endl;
則輸出 a 7。a與7之間有3個(gè)空格,因?yàn)橄到y(tǒng)默認(rèn)是設(shè)置 ios::right 右對(duì)齊。
注意 width 成員函數(shù)只適應(yīng)于下一個(gè)要輸出的項(xiàng),如果要輸出多個(gè)項(xiàng),要調(diào)用多次width,如果嫌麻煩,可以使用流操縱元 setw。
設(shè)置的任何標(biāo)志都可以取消設(shè)置,通過(guò)調(diào)用 unsetf 成員函數(shù)即可取消設(shè)置,例如:
cout.unsetf(ios::showpos);
即可取消正整數(shù)前面顯示 + 號(hào)。
setw 和 setprecision 操縱元。
操縱元是以非傳統(tǒng)的方式調(diào)用的函數(shù)。操縱元位于插入操作符 << 之后。兩個(gè)操縱元均在 iomanip 庫(kù)中,要想使用,需要調(diào)用該庫(kù)。
setw 操縱元和 width 成員函數(shù)作用一樣,要想多次設(shè)置域?qū)挘枰{(diào)用多次 setw 操縱元。實(shí)際上,setw 操縱元就是調(diào)用了 width 成員函數(shù)。如下代碼:
cout << "a" << set(5) << 1 << set(5) << 2 << set(7) << 3 << endl;
該語(yǔ)句輸出為:a 1 2 3。其中 1、2 前面有4個(gè)空格,3 前面有 6 個(gè)空格。
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。