#include <iomanip>略解

iomanip,在C++程序里面經常見到下面的頭文件#include <iomanip>卿吐,io代表輸入輸出旁舰,manip是manipulator(操縱器)的縮寫(在c++上只能通過輸入縮寫才有效)锋华。

外文名

iomanip

含????義

C++程序中的頭文件

開????頭

#include <iomanip>

性????質

操縱運算子

作用

主要是對cin,cout之類的一些操縱運算子嗡官,比如setfill,setw,setbase,setprecision等等。它是I/O流控制頭文件,就像C里面的格式化輸出一樣.以下是一些常見的控制函數的:

dec 置基數為10 相當于"%d"

hex 置基數為16 相當于"%X"

oct 置基數為8 相當于"%o"

setfill( 'c' ) 設填充字符為c

setprecision( n ) 設顯示有效數字為n位

setw( n ) 設域寬為n個字符

這個控制符的意思是保證輸出寬度為n毯焕。如:

cout << setw( 3 ) << 1 << setw( 3 ) << 10 << setw( 3 ) << 100 << endl; 輸出結果為

_ _1_10100 (默認是右對齊)當輸出長度大于3時(<<1000)衍腥,setw(3)不起作用。

▲setw(n)用法: 通俗地講就是預設寬度

如 cout<<setw(5)<<255<<endl;

結果是:

(空格)(空格)255

▲setfill(char c) 用法 : 就是在預設寬度中如果已存在沒用完的寬度大小纳猫,則用設置的字符c填充

如 cout<<setfill(‘@‘)<<setw(5)<<255<<endl;

結果是:

@@255

應當指出婆咸,setw只作用于緊隨其后的部分,例如

cout<<setfill('*')<<setw(6)<<123<<456;的運行結果為***123456芜辕,這里setfill('*')<<setw(6)只對 123 起作用輸出了***123,456作為另一部分隨后輸出尚骄。

▲setbase(int n) : 將數字轉換為 n 進制.

如 cout<<setbase(8)<<setw(5)<<255<<endl;

cout<<setbase(10)<<setw(5)<<255<<endl;

cout<<setbase(16)<<setw(5)<<255<<endl;

結果是:

(空格)(空格)377

(空格)(空格) 255

(空格)(空格)(空格) f f

▲ setprecision(long f)方法的用法

使用setprecision(n)可控制輸出流顯示浮點數的數字個數。C++默認的流輸出數值有效位是6侵续。

如果setprecision(n)與setiosflags(ios::fixed)合用倔丈,可以控制小數點右邊的數字個數。setiosflags(ios::fixed)是用定點方式表示實數状蜗。

如果與setiosflags(ios::scientific)合用需五, 可以控制指數表示法的小數位數。setiosflags(ios::scientific)是用指數方式表示實數轧坎。

setiosflags(ios::fixed) 固定的浮點顯示

setiosflags(ios::scientific) 指數表示

setiosflags(ios::left)?左對齊

setiosflags(ios::right)?右對齊

setiosflags(ios::skipws) 忽略前導空白

setiosflags(ios::uppercase) 16進制數大寫輸出

setiosflags(ios::lowercase) 16進制小寫輸出 //VS2010中該方法已不使用宏邮,意外使用顯示沒有該成員錯誤。

setiosflags(ios::showpoint) 強制顯示小數點

setiosflags(ios::showpos) 強制顯示符號

▲ resetflags(long f)方法的用法

該方法是setiosflags方法的反向方法缸血,即清除之前語句中所使用的setiosflags設定的格式蜜氨,恢復為默認格式。

舉例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

//此程序輸出通過Microsoft?Visual?C++?2017運行得出捎泻。

//?iomanip.cpp?:?此文件包含?"main"?函數记劝。程序執(zhí)行將在此處開始并結束。

#include?"pch.h"

#include?<iostream>

#include<iomanip>

usingnamespacestd;


intmain()

{

????cout?<<?12345.0?<<?endl;//輸出"12345"

????cout?<<?setiosflags(ios::fixed)?<<?setprecision(3)?<<?1.2345?<<?endl;//輸出"1.234"(遵循四舍六入五成雙的原則族扰,而不是四舍五入的原則)

????cout?<<?resetiosflags(ios::fixed);//需要用resetiosflags()函數清除前面的輸出格式

????cout?<<?setiosflags(ios::scientific)?<<?12345.0?<<?endl;//輸出"1.235e+04"

????cout?<<?resetiosflags(ios::scientific);//需要用resetiosflags()函數清除前面的輸出格式

????cout?<<?setiosflags(ios::fixed)?<<?setprecision(3)?<<?12345.0?<<?endl;//輸出"12345.000"

????return0;

}


//?運行程序:?Ctrl?+?F5?或調試?>“開始執(zhí)行(不調試)”菜單

//?調試程序:?F5?或調試?>“開始調試”菜單


//?入門提示:?

//???1.?使用解決方案資源管理器窗口添加/管理文件

//???2.?使用團隊資源管理器窗口連接到源代碼管理

//???3.?使用輸出窗口查看生成輸出和其他消息

//???4.?使用錯誤列表窗口查看錯誤

//???5.?轉到“項目”>“添加新項”以創(chuàng)建新的代碼文件厌丑,或轉到“項目”>“添加現有項”以將現有代碼文件添加到項目

//???6.?將來定欧,若要再次打開此項目,請轉到“文件”>“打開”>“項目”并選擇?.sln?文件

輸出分別為:

12345

1.234

1.235e+04

12345.000

?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末怒竿,一起剝皮案震驚了整個濱河市砍鸠,隨后出現的幾起案子,更是在濱河造成了極大的恐慌耕驰,老刑警劉巖爷辱,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異朦肘,居然都是意外死亡饭弓,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進店門媒抠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來弟断,“玉大人,你說我怎么就攤上這事趴生》浚” “怎么了?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵苍匆,是天一觀的道長刘急。 經常有香客問我,道長浸踩,這世上最難降的妖魔是什么叔汁? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮检碗,結果婚禮上据块,老公的妹妹穿的比我還像新娘。我一直安慰自己后裸,他們只是感情好瑰钮,可當我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著微驶,像睡著了一般浪谴。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上因苹,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天苟耻,我揣著相機與錄音,去河邊找鬼扶檐。 笑死凶杖,一個胖子當著我的面吹牛,可吹牛的內容都是我干的款筑。 我是一名探鬼主播智蝠,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼腾么,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了杈湾?” 一聲冷哼從身側響起解虱,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎漆撞,沒想到半個月后殴泰,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡浮驳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年悍汛,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片至会。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡离咐,死狀恐怖,靈堂內的尸體忽然破棺而出奋献,到底是詐尸還是另有隱情健霹,我是刑警寧澤旺上,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布瓶蚂,位于F島的核電站,受9級特大地震影響宣吱,放射性物質發(fā)生泄漏窃这。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一征候、第九天 我趴在偏房一處隱蔽的房頂上張望杭攻。 院中可真熱鬧,春花似錦疤坝、人聲如沸兆解。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽锅睛。三九已至,卻和暖如春历谍,著一層夾襖步出監(jiān)牢的瞬間现拒,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工望侈, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留印蔬,地道東北人。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓脱衙,卻偏偏與公主長得像侥猬,于是被迫代替她去往敵國和親例驹。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內容