在我們使用c++的輸入輸出流時,往往採用的是預設的輸出格式,但有時候我們並不希望按這樣的方式輸出,需要按自己的要求控制輸出格式。下面的控制符或者格式標誌可以幫助我們按照相應的格式輸出。
(我從各處蒐集了相應的控制符和格式標誌)
表1 輸入輸出流的控制符(部分控制符需要iomanip標頭檔案)
控制符作 用
dec設定數值的基數為10
hex設定數值的基數為16
oct設定數值的基數為8
setfill(ch)
設定填充字元ch,ch可以是字元常量或字元變數
setprecision(n)
設定浮點數的精度為n位。在以一般十進位制小數形式輸出時,n代表有效數字。在以fixed(固定小數字數)形式和 scientific(指數)
setw(n)
設定字段寬度為n位
setiosflags( ios::fixed)
設定浮點數以固定的小數字數顯示
setiosftags( ios::scientific)
設定浮點數以科學記數法(即指數形式)顯示
setiosflags( ios::left)
輸出資料左對齊
setiosflags( ios::right)
輸出資料右對齊
setiosflags( ios::skipws)
忽略前導的空格
setiosflags( ios::uppercase)
資料以十六進製制形式輸出時字母以大寫表示
setiosflags( ios::lowercase)
資料以十六進製制形式輸出時宇母以小寫表示
setiosflags(ios::showpos)
輸出正數時給出「+」號
表2 設定格式狀態的格式標誌
格式標誌
作用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和以十六進製制輸出字母時以大寫表示
ios::showpos
對正數顯示「+」號
ios::scientific
浮點數以科學記數法格式輸出
ios::fixed
浮點數以定點格式(小數形式)輸出
ios::unitbuf
每次輸出之後重新整理所有的流
ios::stdio
每次輸出之後清除stdout, stderr
表3 設定輸出格式的流操作子(需要包含iomanip標頭檔案)
操作符含義
setfill(ch)
用ch填充空白字元
setprecision(n)
將浮點精度設定為n
setw(n)
按照n個字元來讀或者寫
setbase(b)
以b為進製基數輸出整數值
cout<<"dec:"
<< "|" << setw(38) << "store" << "|" << endl //設定輸出寬度和填充字元
<< "|" << setw(38) << setfill('*') << "*" << setfill(' ') << '|' << endl//設定輸出寬度和填充字元
<< "| xiaofang convenience store |" << endl
<< "|" << setw(38) << setfill('*') << "*" << setfill(' ') << '|' << endl;//設定輸出寬度和填充字元
C 格式化輸出,C 輸出格式控制
在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進製制或八進位制形式 輸出乙個 整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。1 使用控制符的方法 2 使用流物件的有關成員函式。分別敘述如下。使用控制符的...
C 格式化輸出,C 輸出格式控制
在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進製制或八進位制形式輸出乙個 整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是我們已經介紹過的使用控制符的方法 詳情請檢視 c 輸入cout與輸出cin...
C 格式化輸出,C 輸出格式控制
在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進製制或八進位制形式輸出乙個 整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是我們已經介紹過的使用控制符的方法 詳情請檢視 c 輸入cout與輸出cin...