格式代碼
|
A
|
ABC
|
ABCDEFGH
|
%S
|
A
|
ABC
|
ABCDEFGH
|
%5S
|
####A
|
##ABC
|
ABCDEFGH
|
%.5S
|
A
|
ABC
|
ABCDE
|
%5.5S
|
####A
|
##ABC
|
ABCDE
|
%-5S
|
A####
|
ABC##
|
ABCDEFGH
|
Printf 格式化字符串
格式代碼
|
1
|
-12
|
12345
|
123456789
|
%d
|
1
|
-12
|
12345
|
123456789
|
%6d
|
#####1
|
###-12
|
#12345
|
123456789
|
%.4d
|
0001
|
-0012
|
12345
|
123456789
|
%6.4d
|
##0001
|
#-0012
|
#12345
|
123456789
|
%-4d
|
1####
|
-12#
|
12345
|
123456789
|
%04d
|
0001
|
-012
|
12345
|
123456789
|
%+d
|
+1
|
-12
|
+12345
|
+123456789
|
Printf格式化整型數值
格式代碼
|
1
|
.01
|
.00012345
|
12345.6789
|
%f
|
1.000000
|
0.010000
|
0.000123
|
12345.678900
|
%10.2d
|
######1.00
|
#####0.01
|
######0.00
|
##12345.67
|
%e
|
1.000000e+00
|
1.000000e-02
|
1.234500e-04
|
1.234568e+04
|
%.4e
|
1.0000e+00
|
1.0000e-02
|
1.2345e-04
|
1.2346e+04
|
%g
|
1
|
0.01
|
0.00012345
|
12345.7
|
格式代碼
|
6.023e23
|
%f
|
60229999999999975882752.000000
|
%10.2e
|
60229999999999975882752.00
|
%e
|
6.023000e+23
|
%.4e
|
6.0230e+23
|
%g
|
6.023e+23
|
Printf格式化浮點值
printf()格式轉換的一般形式如下
%(flags)(width)(.prec)type
以中括號括起來的參數為選擇性參數,,而%與type則是必要的,。底下先介紹type的幾種形式
整數
%d 整數的參數會被轉成一有符號的十進制數字
%u 整數的參數會被轉成一無符號的十進制數字
%o 整數的參數會被轉成一無符號的八進制數字
%x 整數的參數會被轉成一無符號的十六進制數字,并以小寫abcdef表示
%X 整數的參數會被轉成一無符號的十六進制數字,,并以大寫ABCDEF表示浮點型數
%f double 型的參數會被轉成十進制數字,,并取到小數點以下六位,四舍五入,。
%e double型的參數以指數形式打印,,有一個數字會在小數點前,六位數字在小數點后,,而在指數部分會以小寫的e來表示,。
%E 與%e作用相同,唯一區(qū)別是指數部分將以大寫的E 來表示,。
%g double 型的參數會自動選擇以%f 或%e 的格式來打印,,其標準是根據欲打印的數值及所設置的有效位數來決定。
%G 與%g 作用相同,,唯一區(qū)別在以指數形態(tài)打印時會選擇%E 格式,。
字符及字符串
%c 整型數的參數會被轉成unsigned char型打印出,。
%s 指向字符串的參數會被逐字輸出,直到出現NULL字符為止
%p 如果是參數是“void *”型指針則使用十六進制格式顯示,。
prec 有幾種情況
1. 正整數的最小位數,。
2. 在浮點型數中代表小數位數
3. 在%g 格式代表有效位數的最大值。
4. 在%s格式代表字符串的最大長度,。
5. 若為×符號則代表下個參數值為最大長度,。
width為參數的最小長度,,若此欄并非數值,,而是*符號,則表示以下一個參數當做參數長度,。
flags 有下列幾種情況
#NAME?
+ 一般在打印負數時,,printf( )會加印一個負號,整數則不加任何負號,。此旗標會使得在打印正數前多一個正號(+),。
# 此旗標會根據其后轉換字符的不同而有不同含義。當在類型為o 之前(如%#o),,則會在打印八進制數值前多印一個o,。
而在類型為x 之前(%#x)則會在打印十六進制數前多印’0x’,在型態(tài)為e,、E,、f、g或G 之前則會強迫數值打印小數點,。在類型為g 或G之前時則同時保留小數點及小數位數末尾的零,。
0 當有指定參數時,無數字的參數將補上0,。默認是關閉此旗標,,所以一般會打印出空白字符。