printf函數稱為格式輸出函數,其關鍵字 最末一個字母 f 即為“格式”(format)之意。
其功能是按用戶指定的格式,把指定的數據顯示到顯示器屏幕上。
printf函數 調用的一般形式
printf函數是一個標准庫函數,它的函數原型在頭文件“stdio.h”中。但作為一個特例,不要求在使用 printf 函數之前必須包含stdio.h文件。
printf函數調用的一般形式為:
printf(“格式控制字符串”, 輸出表列)
printf(“格式控制字符串”, 輸出表列)
其中格式控制字符串用於指定輸出格式。
格式控制串可由
格式字符串和
非格式字符串兩種組成。
格式字符串是以%開頭的字符串,在%后面跟有各種格式字符,以說明輸出數據的
類型、形式、長度、小數位數等。
非格式字符串原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數量和類型上應該一一對應。
[標志] [輸出最小寬度] [精度] [長度] 類型。
其中方括號[]中的項為可選項。
1) 類型
2) 標志
3) 輸出最小寬度
輸出的最少位數。
非格式字符串原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字符串和各輸出項在數量和類型上應該一一對應。
格式字符串
在Turbo C中格式字符串的一般形式為:[標志] [輸出最小寬度] [精度] [長度] 類型。
其中方括號[]中的項為可選項。
1) 類型
格式字符 | 意義 |
---|---|
d | 以十進制形式輸出帶符號整數(正數不輸出符號) |
o | 以八進制形式輸出無符號整數(不輸出前綴0) |
x,X | 以十六進制形式輸出無符號整數(不輸出前綴Ox) |
u | 以十進制形式輸出無符號整數 |
f | 以小數形式輸出單、雙精度實數 |
e,E | 以指數形式輸出單、雙精度實數 |
g,G | 以%f或%e中較短的輸出寬度輸出單、雙精度實數 |
c | 輸出單個字符 |
s | 輸出字符串 |
標 志 | 意義 |
---|---|
- | 結果左對齊,右邊填空格 |
+ | 輸出符號(正號或負號) |
空格 | 輸出值為正時冠以空格,為負時冠以負號 |
# | 對c、s、d、u類無影響; 對o類,在輸出時加前綴o; 對x類,在輸出時加前綴0x; 對e、g、f 類當結果有小數時才給出小數點。 |
3) 輸出最小寬度
輸出的最少位數。
若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。
4) 精度
精度格式符以“.”開頭,后跟十進制整數。
4) 精度
精度格式符以“.”開頭,后跟十進制整數。
本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字符,則表示輸出字符的個數;若實際位數大於所定義的精度數,則截去超過的部分。
5) 長度
5) 長度
長度格式符為h、l兩種,
h表示按短整型量輸出,l表示按長整型量輸出。
使用printf函數時還要注意一個問題,那就是輸出表列中的求值順序。不同的編譯系統不一定相同,可以從左到右,也可從右到左。