C語言中printf和scanf函式基本的引數型別和輸出形式
阿新 • • 發佈:2019-01-02
printf函式的引數型別和輸出形式
字元 | 引數型別 | 輸出形式 |
---|---|---|
d,i | int | 十進位制數 |
o | int | 無符號八進位制數(不含前導0) |
x,X | int | 無符號十六進位制數(沒有前導0x或0X),10~15分別用abcdef(引數型別為小寫x時)和ABCDEF(引數型別為大寫X時)表示 |
u | int | 無符號十進位制數 |
c | int | 單個字元 |
s | char* | 順序列印字串中的字元,直到遇到’\0’或已列印了由精度指定的字元數為止 |
f | double | 十進位制小數[-]m.dddddd,其中d的個數由精度指定(預設值為6) |
e,E | double | [-]m.dddddd e [±]xx(引數型別為小寫e)或[-]m.dddddd E [±]xx(引數型別為大寫E),其中d的個數由精度指定(預設值為6) |
g,G | double | 如果指數小於-4或大於等於精度,則用%e或%E格式輸出,否則用%f格式輸出,尾部的0或小數點不列印 |
p | void* | 指標(取決於具體實現) |
在轉換說明中,寬度或精度可以用*表示,這時,寬度或精度的值通過轉換下一引數(必須為int型別)來計算,例如為了從字串s中列印最多max個字元,可以使用下列語句:
printf("%.*s",max,s);
scanf函式的引數型別和輸入形式
字元 | 引數型別 | 輸入形式 |
---|---|---|
d | int* | 十進位制整數 |
i | int* | 整數,可以是八進位制(以0開頭),也可以是十六進位制(以0x或0X開頭) |
o | int* | 八進位制整數(可以以0開頭,也可以不以0開頭) |
x | int* | 十六進位制整數(可以以0x或0X開頭,也可以不以0x或0X開頭) |
u | unsigned int* | 無符號十進位制整數 |
c | char* | 單個字元,該轉換不跳過空白符 |
s | char* | 字串 |
e,f,g | float* | 十進位制小數[-]m.dddddd,其中d的個數由精度指定(預設值為6) |
e,E | double | 浮點數 |