Print格式查詢

printf()格式轉換的一般形式如下
%(flags)(width)(.prec)type
以中括號括起來的參數爲選擇性參數,而%與type則是必要的。底下先介紹type的幾種形式

整數
%d 整數的參數會被轉成一有符號的十進制數字
%u 整數的參數會被轉成一無符號的十進制數字
%o 整數的參數會被轉成一無符號的八進制數字
%x 整數的參數會被轉成一無符號的十六進制數字,並以小寫abcdef表示
%X 整數的參數會被轉成一無符號的十六進制數字,並以大寫ABCDEF表示浮點型數

%f double 型的參數會被轉成十進制數字,並取到小數點以下六位,四捨五入。
%e double型的參數以指數形式打印,有一個數字會在小數點前,六位數字在小數點後,而在指數部分會以小寫的e來表示。
%E 與%e作用相同,唯一區別是指數部分將以大寫的E 來表示。
%g double 型的參數會自動選擇以%f 或%e 的格式來打印,其標準是根據欲打印的數值及所設置的有效位數來決定。
%G 與%g 作用相同,唯一區別在以指數形態打印時會選擇%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’,在型態爲e、E、f、g或G 之前則會強迫數值打


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章