cout格式化輸出 C

2021-08-11 03:05:59 字數 2108 閱讀 9151

由於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 中,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時也需要資料按我們指定的格式輸出,比如以十六進製制的形式輸出乙個整數等。有兩種方法可以達到格式化...