使用這些格式需要宣告包含
long flags( ) const 返回當前的格式標誌。
long flays(long newflag) 設定格式標誌為newflag,返回舊的格式標誌。
long setf(long bits) 設定指定的格式標誌位,返回舊的格式標誌。
long setf(long bits,long field)將field指定的格式標誌位置為bits,返回舊的格式標誌
long unsetf(long bits) 清除bits指定的格式標誌位,返回舊的格式標誌。
long fill(char c) 設定填充字元,預設條件下是空格。
char fill( ) 返回當前填充字元。
int precision(int val) 設定精確度為val,控制輸出浮點數的有效位,返回舊值。
int precision( ) 返回舊的精確度值。
int width(int val) 設定顯示資料的寬度(域寬),返回舊的域寬。
int width( )只返回當前域寬,預設寬度為0。這時插入操作能按表示資料的最小寬度顯示資料
dec 十進位制的輸入輸出
hex 十六進製制的輸入輸出
oct 八進位制的輸入輸出
ws 提取空白字元
flush 重新整理流
resetiosflags(long) 請除特定的格式標誌位
setiosflags(long) 設定特定的格式標誌位
setfill(char) 設定填充字元
setprecision(int) 設定輸出浮點數的精確度
setw(int) 設定域寬格式變數
c++輸入輸出流格式控制
1.使用控制符控制輸出格式
控制符作用
dec設定整數的基數為10
hex設定整數的基數為16
oct設定 整數的基數為8
setbase(n)
設定整數的基數為n(n只能是16,10,8之一)
setfill(c)
設定填充字元c,c可以是字元常量或字元變數
setprecision(n)
設定實數的精度為n位。在以一般十進位制小數形式輸出時,n代表有效數字。在以fixed(固定小數字 數)形式和scientific(指數)形式輸出時,n為小數字數。
setw(n)
設定字段寬度為n位。
setiosflags(ios::fixed)
設定浮點數以固定的小數字數顯示。
setiosflags(ios::scientific)
設定浮點數以科學計數法(即指數形式)顯示。
setiosflags(ios::left)
輸出資料左對齊。
setiosflags(ios::right)
輸出資料右對齊。
setiosflags(ios::shipws)
忽略前導的空格。
setiosflags(ios::uppercase)
在以科學計數法輸出e和十六進製制輸出字母x時,以大寫表示。
setiosflags(ios::showpos)
輸出正數時,給出「+」號。
resetiosflags
終止已設定的輸出格式狀態,在括號中應指定內容。
2.用流物件的 成員控制輸出格式
流成員函式
與之作用相同的控制符
作用precision(n)
setprecision(n)
設定實 數的精度為n位。
width(n)
setw(n)
設定字段寬度為n位。
fill(c)
setfill(c)
設定填充字元c。
setf( )
setiosflags( )
設定輸出格式狀態,括號中應給出格式狀態,內容與控制符setiosflags括號中內容相同。
ubsetf( )
resetiosflags( )
終止已設定的輸出格式狀態。
cout.width(10);
cout.setf(ios::hex);
3.設定格式狀態的格式標誌
格式標誌
作用ios::left
輸出資料在本域寬範 圍內左對齊
ios::right
輸出資料在本域寬範圍內右對齊
ios::internal
數值的符號位在域寬內左對齊,數值右對齊,中間由填充字元填充
ios::dec
設定整數的基數為10
ios::oct
設定整數的基數為8
ios::hex
設定整數的基數為16
ios::showbase
強制輸出整數的基數(八進位制以0打頭,十六進製制以0x打頭)
ios::showpoint
強制輸出浮點數的小點和尾數0
ios::uppercase
在以科學計數法輸出e和十六進製制輸出字母x時,以大寫表示
ios::showpos
輸出正數時,給出「+」號。
ios::scientific
設定浮點數以科學計數法(即指數形式)顯示
ios::fixed
設定浮點數以固定的小數字數顯示
ios::unitbuf
每次輸出後重新整理所有流
ios::stdio
每次輸出後清除 stdout,stderr
以小數形式,保留三位小數輸出:
cout<
c++輸出流的格式控制setw()、setfill()、setbase()、setprecision()、tellp...
inline smanip(long) resetiosflags(long _l)
inline smanip(int) setfill(int _m)
inline smanip(long) setiosflags(long _l)
inline smanip(int) setprecision(int _p)
inline smanip(int) setw(int _w)
//他們都是inline 內聯函式
(1)setw(int n) 預設輸出寬度
如:cout<
輸出結果為「 123」,在123的前面會有3個空格,123右對齊。
(2)setfill(char c) 預設填充字元
如:cout<
輸出顯示結果為「###123」,123右對齊,在前面填充3個』#』 。
(3)setbase(int n) 預設整數輸出進製
如:cout<
輸出顯示結果為377
(4)setprecision(int n) 用於控制輸出流顯示浮點數的精度,整數n代表顯示的浮點數數字的個數。示例程式如下:
#include #include //格式控制
using namespace std;
int main()
{ double amount = 22.0/7;
cout <
輸出結果:
第1行輸出數值之前沒有設定有效位數,所以用流的有效位數預設設定值6:第2個輸出設定了有效位數0,c++最小的有效位數為1,所以作為有效位數設定為1來看待:第3~6行輸出按設定的有效位數輸出。 第7行輸出是與setiosflags(ios::fixed)合用。所以setprecision(8)設定的是小數點後面的位數,而非全部數字個數。 第8行輸出用setiosflags(ios::scientific)來表示指數表示的輸出形式。其有效位數沿用上次的設定值8。在用指數形式輸出時,setprecision(n)表示小數字數。 (可是這個指數形式的輸出我用vc6沒有執行出來)。
setw(int _w)講解
<< setw(int _w) << 輸出位寬
如<< setw(7) << 1000 輸出結果為 "1000 "(緊跟三個空格)
而如<< setw(3) << 1000 位寬小於原來的數字的位寬 那麼按照原來的格式輸出"1000" 前後無空格
setfill() 講解
setfill(int _m) 隨setw(int _w)一起使用 意思是在set(int _w)設定後的空格填充指定的字元
注意setfill裡邊的引數是int _m 是個整數 所以 如果我們要用空格來填充*號的時候
要使用setfill('*')[字元] 而不是setfill(*)
cout標準輸出流常用控制格式
使用這些格式需要宣告包含 long flags const 返回當前的格式標誌。long flays long newflag 設定格式標誌為newflag,返回舊的格式標誌。long setf long bits 設定指定的格式標誌位,返回舊的格式標誌。long setf long bits,lo...
cout格式控制輸出float double浮點數
float test 1.234 std stringstream ss ss test std string str test str test ss.str std cout ss.str 結果是這樣的 1.234 1.23399996757507324218750000000000000 1....
cout 常用成員函式簡介 C 輸出格式控制
cout.width int length 常與cout.flags ios left orcout.flags ios right 搭配使用,來控制居左 居右輸出 作用域 只能控制下面一句 cout 輸出!例 string s she char ch v cout.width 5 cout.fla...