格式說明總是由“%”字符開始的,不同類型的數據用不同的格式字符。 格式字符有d,o,x,u,c,s,f,e,g,p等。
1.轉換說明
%d整型輸出,%md,m為指定的輸出字段的寬度,%ld長整型輸出。
%i有符號十進制整數(與%d相同)。
%u以十進制數輸出unsigned型數據(無符號數)。
%o以八進制數形式輸出整數。
%x以十六進制數形式輸出整數。
%c用來輸出一個字符。
%s用來輸出一個字符串。
%f用來輸出實數,以小數形式輸出,默認情況下保留小數點6位。
%e以指數形式輸出實數。
%g根據大小自動選f格式或e格式,且不輸出無意義的零。
%p用於變量地址的輸出。
%% "%"
%a(%A) 浮點數、十六進制數字和p-(P-)記數法(C99)
scanf("%d%c%s",&a,&b,str);
printf("%d%c",a,b);
2.標志-五種標志 (-、+、空格、# 和0)
- 項目是左對齊的:也就是說,會把項目打印在字段的左側開始處
例如:”%-20s”
+ 有符號的值若為正,則顯示帶加號的符號:若為負,則帶減號的符號
例如:”%+6.2f”
(空格) 有符號的值若為正,則顯示帶前導空格(但是不顯示符號):若為負,則帶減號符號。+標示會覆蓋空格標志
例如:”% 6.2f”
# 使用轉換說明的可選形式。若為%o格式,則以0開始;若為%x和%X格式,則以0x或0X開始,對於所有的浮點形式,#保證了即使不限任何數字,也打印一個小數點字符。對於%g和%G格式,它防止尾隨零被刪除。
例如:“%#o”、“%#8.0f”和“%+#10.3E”
0 對於所有的數字格式,用前導零而不是用空格填充字段寬度。如果出現-標志或者指定了精度(對於整數)則忽略該標志。
3.格式字符串(格式)
[標志][輸出最少寬度][.精度][長度]類型
"%-md" :左對齊,若m比實際少時,按實際輸出。
"%m.ns":輸出m位,取字符串(左起)n位,左補空格,當n>m or m省略時m=n
e.g. "%7.2s" 輸入CHINA
輸出" CH"
"%m.nf":輸出浮點數,m為寬度,n為小數點右邊數位
e.g. "%3.1f" 輸入3852.99
輸出3853.0
長度:為h短整形量,l為長整形量