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 整數的引數會被...