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 有下列幾種情況
+ 一般在列印負數時,printf()會加印乙個負號,此旗標會使得在列印正數前多乙個正號(+)。
# 此旗標會根據其後轉換字元的不同而有不同含義。當在型別為o 之前(如%#o),則會在列印八進位制數值前多印乙個0(表示是八進位制)。
而在型別為x 之前(%#x)則會在列印十六進製制數前多印』0x』,在型態為e、e、f、g或g 之前則會強迫數值列印小數點。在型別為g 或g之前時則同時保留小數點及小數字數末尾的零。
0 當有指定引數時,無數字的引數將補上0。預設是關閉此旗標,所以一般會列印出空白字元。
printf函式詳解
printf 函式 作用 向終端輸出若干個任意型別的資料 putchar 只能輸出字元,而且只能是乙個字元,而printf可以輸出多個資料,且為任意型別 一 printf 的一般格式 printf 格式控制,輸出列表 例 int i 3 double f 4.56 printf i d,f f n ...
printf函式詳解
首先直接描述printf函式中的 格式描述串 它是由一系列的 格式轉換說明符號 組成,格式轉換說明符號的描述形式如下 0 m n 輸出精度 形式字母 1 形式字母 制定輸出格式,如表 d 十進位制整型數 i 十進位制整型數 x 十六進製制整型數 o 八進位制整形數 u 無符號十進位制整形數 c 單個...
printf函式詳解
首先直接描述printf函式中的 格式描述串 它是由一系列的 格式轉換說明符號 組成,格式轉換說明符號的描述形式如下 0 m n 輸出精度 形式字母 1 形式字母 制定輸出格式,如表 d 十進位制整型數 i 十進位制整型數 x 十六進製制整型數 o 八進位制整形數 u 無符號十進位制整形數 c 單個...