1. 程式人生 > >[C/C++] 格式化字串引數介紹

[C/C++] 格式化字串引數介紹

格式化輸出標準格式
% [flag] [fldwidth] [precision] [lenmodifier] convtype
格式化輸入標準格式
% [*] [fldwidth] [m] [lenmodifier] convtype

*用於抑制轉換,按照轉換說明的其餘部分對輸入進行轉換,但轉換結果並不存放在引數中。

flag 說明
將整數按千分位分組字元
- 在欄位內左對齊輸出
+ 總是現實代符號轉換的正負號
space 如果第一個字元不是正負號,則在其前面加上一個空格
# 指定另一種轉換格式(如十六進位制加0x字首)
0 新增前導0進行填充

fldwidth說明最小欄位寬度,多餘字元位置用空格填充。

precision說明整形轉換後最少輸出字元數、浮點數轉換後小數點後的最少位數、字串轉換後最大位元組數。

lenmodifier 說明
hh 按signed或unsigned char輸出
h 按signed或unsigned short輸出
l 按signed或unsigned long或寬字元輸出
ll 按signed或unsigned long long輸出
j intmax_t或uintmax_t
z size_t
t ptrdiff_t
L long double
convtype 說明
d、i 有符號十進位制
o 無符號八進位制
u 無符號十進位制
x、X 無符號十六進位制
f、F 雙精度浮點數
e、E 指數格式雙精度浮點數
g、G 根據轉換後的值解釋為f、F、e、E
a、A 十六進位制指數格式雙精度浮點數
c 字元(若帶長度修飾服l,則表示寬字元)
s 字串(若帶長度修飾服l,則表示寬字串)
p 指向void的指標
n 到目前為值,此printf呼叫輸出的字元的數目將被寫入到指標所指向的代符號整形中
% 一個%字元
C 寬字元,等效於lc
S 寬字串,等效於ls