格式化輸出 parts iomanip

2022-04-07 00:09:41 字數 1802 閱讀 5379

/*

用ios類中的成員函式來進行io格式的控制總需要寫一條單獨的語句,而不能直接嵌入到io語句中,顯得很不方便,因此c++又提供了一種用操作符來控制io的格式。操作符分為帶參和不帶參兩種,帶參的定義在標頭檔案iomanip中,不帶參的定義在標頭檔案iostream中

首先看一下定義在標頭檔案iostream中的不帶參的流操作符

boolalpha      使用文字形式輸出bool型數值(即輸出true或false)

fixed          定點格式輸出,即以小數點的形式表示浮點數

scientific        用科學記數法表示浮點數

dec            採用十進位制,用於輸入和輸出

oct          採用八進位制,用於輸入和輸出

hex            採用十六進製制,用於輸入和輸出

internal          輸出格式為居中對齊

right          輸出格式為右對齊

left            輸出格式為左對齊

showpos        在正數前面加上+號

showpoint     顯示末尾的0

showbase      顯示進製,即在十六進製制數前新增0x,在八進位制數前新增0

uppercase     大寫顯示

unitbuf       每次執行輸出操作後均會清空緩衝區,如cout<

skipws        忽略輸入流中的空白字元,即當我們輸入的字元前面有空格時,儲存的時候會自動忽略

以上15個即是標準控制符,它們可以自動呼叫setf()函式並提供正確的引數,因此可以直接使用

noboolalpha

noshowpos

noshowpoint

noshowbase

nouppercase

nounitbuf

noskipws

指示標誌位ios::basefield、ios::adjustfield、ios::floatfield可以清除相應的8個標誌位,剩下的7個標誌位除了可以通過unsetf()清除,還可以通過以上7個命令清除相應標誌位 

ws 跳過輸入的空格符,用於輸入

endl 輸出乙個換行符並重新整理輸出流,用於輸出

ends 輸出乙個空字元null,通常用來結束乙個字串,用於輸出

flush 重新整理輸出流,用於輸出

注:null和'\0'的區別:'\0'和null的值都是0,但'\0'指的是空字串,用於判斷字串結束;而null指的是空指標,用於判斷指標指向的物件是否為空

接下來看一下定義在標頭檔案iomanip中的帶參的流操作符

setw(n)                   同ios類中的成員函式width(),設定字段寬度,用於輸出

setfill(c)                同ios類中的成員函式fill(),設定填充字元為c(預設為空格,一次有效),用於輸出

setprecision(n)          同ios類中的成員函式precision(),用於輸出 

setbase(n)            設定整數的基數為n(n可取0或10代表十進位制,8代表八進位制,16代表十六進製制,預設為0),用於輸入和輸出

setiosflags(fmtflag)     設定標誌位,多個用"|"隔開,用於輸入和輸出

resetiosflags(fmtflag)    清除指定標誌位,多個用"|"隔開,用於輸入和輸出 

*/

#include using

namespace

std;

intmain()

格式化輸出

a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...

格式化輸出

a 浮點數 十六進製制數字和p 記數法 a 浮點數 十六進製制數字和p 記法 c 乙個字元 char c 乙個iso寬字元 d 有符號十進位制整數 int ld ld 長整型資料 long hd 輸出短整形。e 浮點數 e 記數法 e 浮點數 記數法 f 單精度浮點數 預設float 十進位制記數法...

格式化輸出

簡單輸出 print 你好小明 print 你好小紅 print 你好小李 帶變數的輸出 更有靈活性,易於維護 name 小李 print name 加號拼接字串 pay 8 print 花費一共 pay 元 print裡用逗號列印多個變數 name 小明 score 90 print name,s...