1. 程式人生 > 其它 >【筆記】【C語言】格式控制符 / 格式輸出函式printf()詳解

【筆記】【C語言】格式控制符 / 格式輸出函式printf()詳解

  printf函式稱為格式輸出函式,其關鍵字 最末一個字母 f 即為“格式”(format)之意。
  其功能是按使用者指定的格式,把指定的資料顯示到顯示器螢幕上。

printf函式 呼叫的一般形式

  printf函式是一個標準庫函式,它的函式原型在標頭檔案“stdio.h”中。但作為一個特例,不要求在使用 printf 函式之前必須包含stdio.h檔案。     printf函式呼叫的一般形式為:
    printf(“格式控制字串”, 輸出表列)
  其中格式控制字串用於指定輸出格式。   格式控制串可由格式字串非格式字串兩種組成。     格式字串是以%開頭的字串,在%後面跟有各種格式字元,以說明輸出資料的型別、形式、長度、小數位數
等。
    非格式字串原樣輸出,在顯示中起提示作用。輸出表列中給出了各個輸出項,要求格式字串和各輸出項在數量和型別上應該一一對應。

格式字串

  在Turbo C中格式字串的一般形式為:
     [標誌] [輸出最小寬度] [精度] [長度] 型別。
  其中方括號[]中的項為可選項。
  1) 型別
格式字元 意義
d 十進位制形式輸出帶符號整數(正數不輸出符號)
o 八進位制形式輸出無符號整數(不輸出字首0)
x,X 十六進位制形式輸出無符號整數(不輸出字首Ox)
u 十進位制形式輸出無符號整數
f 小數形式
輸出單、雙精度實數
e,E 指數形式輸出單、雙精度實數
g,G %f或%e中較短的輸出寬度輸出單、雙精度實數
c 輸出單個字元
s 輸出字串
    2) 標誌
標 志 意義
- 結果左對齊,右邊填空格
+ 輸出符號(正號或負號)
空格 輸出值為正時冠以空格,為負時冠以負號
# 對c、s、d、u類無影響;
對o類,在輸出時加字首o;
對x類,在輸出時加字首0x;
對e、g、f 類當結果有小數時才給出小數點。

  3) 輸出最小寬度
  輸出的最少位數。     若實際位數多於定義的寬度,則按實際位數輸出,若實際位數少於定義的寬度則補以空格或0。

  4) 精度
  精度格式符以“.”開頭,後跟十進位制整數。
  本項的意義是:如果輸出數字,則表示小數的位數;如果輸出的是字元,則表示輸出字元的個數;若實際位數大於所定義的精度數,則截去超過的部分。

  5) 長度   長度格式符為h、l兩種,h表示按短整型量輸出,l表示按長整型量輸出。     使用printf函式時還要注意一個問題,那就是輸出表列中的求值順序。不同的編譯系統不一定相同,可以從左到右,也可從右到左。Turbo C是按從右到左進行的。請看下面兩個例子。