由於class ifstream/ofstream分別為class istream/ostream派生來的,所以,下面介紹的cout輸出的格式化,在檔案的輸出時使用方法相同。
由於使用iostream工具來設定一些格式值不太方便,為簡化工作,c++在標頭檔案iomanip中提供了一些控制符,他們能夠提供流成員函式相同的功能。其成員函式與控制符的對應關係如下**:
流成員函式
與之作用相同的控制符
作用precision(n)
setprecision(n)
設定實數的精度為n位
width(n)
setw(n)
設定字段寬度為n位
fill(c)
setfill(c)
設定填充宇符c
setf()
setiosflags()
設定輸出格式狀態,括號中應給出格式狀態,內容與控制符setiosflags括號中的內容相同
unsetf()
resetioflags()
終止已設定的輸出格式狀態,在括號中應指定內容
對成員函式和控制符的使用有下面兩點說明:
1. 成員函式width(n)和控制符setw(n)只對其後的第乙個輸出項有效。
2. 在用成員函式setf和控制符setiosflags設定輸出格式狀態後,如果想改設定為同組的另一狀態,應當呼叫成員函式unsetf(對應於成員函式self)或resetiosflags(對應於控制符setiosflags),先終止原來設定的狀態,然後再設定其他狀態。
使用setf()不是進行格式的、對使用者最友好的方法,c++提供了多個控制符,能夠呼叫setf(),並自動提供正確的引數。如下**:
例如,std::cout<
控制符呼叫含義
boolalpha
setf(ios_base::boolalpha)
輸入和輸出bool值,可以為true/false
noboolalpha
unsetf(ios_base::boolalpha)
showbase
setf(ios_base::showbase)
對於輸出,使用c++基數字首(0, 0x)
noshowbase
unsetf(ios_base::showbase)
showpoint
setf(ios_base::showpoint)
顯示末尾的小數點
noshowpoint
unsetf(ios_base::showpoint)
showpos
setf(ios_base::showpos)
在正數前面加上+
noshowpos
unsetf(ios_base::showpos)
uppercase
setf(ios_base::uppercase)
對於16進製制輸出,使用大寫字母 e表示法
nouppercase
unsetf(ios_base::uppercase)
internal
setf(ios_base::internal, ios_base::adjustfield)
符號或基數字首左對齊,值右對齊
left
setf(ios_base::left, ios_base::adjustfield)
使用左對齊
right
setf(ios_base::right, ios_base::adjustfield)
使用右對齊
decsetf(ios_base::dec, ios_base::basefield)
使用基數10
hexsetf(ios_base::hex, ios_base::basefield)
使用基數16
octsetf(ios_base::oct, ios_base::basefield)
使用基數8
fixed
setf(ios_base::fixed, ios_base::floatfield)
使用定點計數法
scientific
setf(ios_base::scientific, ios_base::floatfield)
使用科學計數法
cout格式化輸出
在使用setf等庫函式時使用 在使用流操縱運算元時使用 using namespace std 以下所有的setf 都有對應的unsetf 用於取消設定 所有的setiosflags 可以用resetiosflags 取消 標誌位fmtflags的命名空間可以使用ios base 或者ios int...
cout格式化輸出
需要引入的標頭檔案 include在使用流操縱運算元時使用 int laneri 12345 double lanerd 56789 1 設定整數進製輸出 過載1 fmtflags ios base setf fmtflags mask 過載2 fmtflags ios base setf fmtf...
cout格式化輸出
在c語言中,我們一般用printf 函式來進行輸出,通過輸出字串中的格式說明符 如 4.2d 可以很容易地格式化輸出。而在c 中,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時也需要資料按我們指定的格式輸出,比如以十六進製制的形式輸出乙個整數等。有兩種方法可以達到格式化...