C輸出格式控制

2021-03-03 21:35:45 字數 1372 閱讀 5310

showpoint =0x0400, //不管小數點和尾部的0是否可省略不寫,都輸出小數點和0

showpos =0x0800, //在正數前面輸出+號

skipws =0x1000, //不讀入空白字元(空格,製表符\t,回車\r,和換行\n)

unitbuf =0x2000, //每次寫入資料都重新整理到相應裝置

uppercase =0x4000, //科學計數法的"e"和16進製制計數的"x",大寫輸出為"e"和"x"

adjustfield =left | right | internal, //一般用作對齊方式的遮蔽碼

basefield =dec | hex | oct, //一般用作數值進製輸出方式的遮蔽碼

floatfield =scientific | fixed //一般用作浮點數輸出方式的遮蔽碼

};一般用派生類ios作字首」ios::」使用以上列舉值.

setf函式的另乙個使用原型如下:

fmtflags setf(fmtflags flag,fmtflags mask)

其中第二個函式mask為隱碼格式.例如設定adjustfield,basefield和floatfield格式.組成隱碼格式的所有格式會首先被復位,然後用第乙個引數flag去設定新格式.

對於setf函式設定的格式,可用unsetf函式進行復位.下面是他的原型,引數mask為所要復位的格式.

void unsetf(fmtflags mask)

下面程式使用setf/unsetf函式對內建的cout流進行格式設定和復位.

#include

using namespace std;

int main(void)

對於流的其他格式,如輸出的最小寬域、數值精度以及填充字元的格式設定,可以使用ios_base類提供的width和precision函式,以及ios類提供的fill函式.

width函式用newwidth設定新的最小域寬,如果輸出不足以佔滿整個域,會補充適當的前導空格或者前導0.

streamsize width(streamsize newwidth)

預設的數值精度為6位有效數字,可用precision函式將引數newprecision設定為新的精度值,數值輸出時會按這個精度進行必要的四捨五入.

streamsize precision(streamsize newprecision)

預設的填充字元為空格字元,可以用fill函式將引數fill_char字元設定為填充字元

char_type fill(char_type fill_char)

下面示例程式對cout流進行了域寬、精度和填充字元等流格式進行了設定。

#include

using namespace std;

int main(void)

C輸出格式

printf的格式控制的完整格式 0 m.n l或h 格式字元 下面對組成格式說明的各項加以說明 表示格式說明的起始符號,不可缺少。有 表示左對齊輸出,如省略表示右對齊輸出。0 有0表示指定空位填0,如省略表示指定空位不填。m.n m指域寬,即對應的輸出項在輸出裝置上所佔的字元數。n指精度。用於說明...

134C格式化輸出,C輸出格式控制

在輸出資料時,為簡便起見,往往不指定輸出的格式,由系統根據資料的型別採取預設的格式,但有時希望資料按指定的格式輸出,如要求以十六進製制或八進位制形式輸出乙個整數,對輸出的小數只保留兩位小數等。有兩種方法可以達到此目的。一種是我們已經介紹過的使用控制符的方法,第2種是使用流物件的有關成員函式。分別敘述...

Printf輸出格式控制

int printf const char format,argument format 引數輸出的格式,定義格式為 flags width perc f n h l type 規定資料輸出方式,具體如下 1.type 含義如下 整數 d 整數的引數會被轉成一有符號的十進位制數字 u 整數的引數會被...