共用方式為


printf 類型欄位字元

格式規格中,type 字元是指定的轉換規範對應引數是否要解譯成字元、字串、指標、整數或浮點數。 type 字元是唯一必要格式欄位,他會在特定的格式欄位之後出現。

遵循格式字串的引數會根據對應的 type 字元和選擇性的 大小 前置解譯。 字元型別的 char 和 wchar_t 轉換使用 c 或 C指定,視何種格式化函式被使用,而使用 s 或 S,指定單一位元組、多位元組或寬字串。 使用c 和 s 所指定的字元和字串引數會依printf 函數家族解譯為char 和 char*,或是依wprintf 函式家族解譯為wchar_t和 wchar_t*。 指定使用 C ,而 S 會解譯為 wchar_t 和 wchar_t* 由 printf 函式家族的字元和字串引數,或者為 char 和 char* 由 wprintf 函式家族。

像是short, int, long, long long和unsigned型別的整數被d, i, o, u, x, 和 X所指定。 使用 a、 A、 e、 E、 f、 g和 G指定浮點型別 (例如 float、 double和 long double。 根據預設,除非 size 欄位長度前置修改它們,整數引數強制為 int 型別,因此,浮點引數強制轉型成 double。 在 64 位元系統上, int 是 32 位元值;因此,除非使用 size為ll 或I64 的前置詞,否則 64 位元整數在輸出時格式化會遭到截斷。 由 p 使用指定預設長度為平台的指標型別。

注意事項注意事項

C、 S和 Z 型別字元和 c 和 s 型別字元的行為,以及搭配 printfwprintf 函式,是 Microsoft 擴充功能不是 ANSI 相容。Visual C++ 不支援 F 型別字元。

printf 類型欄位字元

型別字元

引數

輸出格式

c

字元

當使用 printf 函式,指定單一位元組;當使用 wprintf 函式時,指定寬字元。

C

字元

當使用 printf 函式,指定寬字元;當使用 wprintf 函式時,指定單一位元組字元。

d

Integer

帶正負號的十進位整數

i

Integer

帶正負號的十進位整數

o

Integer

不帶正負號的八進位整數

u

Integer

不帶正負號的十進位整數

x

Integer

未帶正負號十六進位整數;使用「abcdef」。

X

Integer

未帶正負號十六進位整數;使用「ABCDEF」。

e

浮點

表單的帶正負號值[–] d.dddd e [標記]dd[d] d 是一個十進位數字中, dddd 是一個或多個十進位數字, dd[d] 是兩個或三個十進位數字是以指數的 輸出格式 和大小,因此, 標記 為 + 或 -。

E

浮點

與 e 格式相同,除了以 E 而非 e 引入指數。

f

浮點

帶有正負號的值格式化型式為 [ – ]dddd.dddd,其中 dddd 是一個或多個十進位數字。 小數點前面的位數取決於數字的大小,小數點後面的位數則取決於要求的精確度。

g

浮點

帶正負號的值會以 f或 e格式顯示,就看哪種格式對所指定值和精確度較精簡。 e 格式,只有在值的指數小於 4 或大於或等於 precision 引數時會使用。 結尾的零截斷,因此,小數點才會出現一或多個數字後面。

G

浮點

與 g 格式相同,除了以 E 而非 e 引入指數(合適的)。

a

浮點

表單的簽署的十六進位雙精度浮點數值 [−]0xh.hhhh dd,其中 h.hhhh 是 十六進位數字 (使用小寫字母) 尾數和 dd 是指數的一或多個數字。 精確度指定小數點之後的位數。

A

浮點

表單的簽署的十六進位雙精度浮點數值 [−]0xh.hhhh dd,其中 h.hhhh 是 十六進位數字 (使用大寫字母) 尾數和 dd 是指數的一或多個數字。 精確度指定小數點之後的位數。

n

整數的指標。

目前已寫入資料流或已成功地寫入緩衝區的字元數。 這個值儲存在給定引數位址的整數中。 請參閱本安全性提示本文。

p

指標類型

顯示引數為十六進位數字的位址。

s

String

當使用 printf 函式,指定單一位元組或多位元組字元字串;當使用 wprintf 函式,指定寬字元字串。 字元會顯示由第一個 Null 字元或直到達到 precision 值為止。

S

String

當使用 printf 函式,指定寬字元字串;當使用 wprintf 函式,指定單一位元組或多位元組字元字串。 字元會顯示由第一個 Null 字元或直到達到 precision 值為止。

Z

ANSI_STRINGUNICODE_STRING 結構

當或 UNICODE_STRING 結構的 ANSI_STRING 位址傳遞做為引數時,顯示在緩衝區包含指向結構的 Buffer 欄位的字串。 使用 w 的長度修飾詞器前置指定 UNICODE_STRING 引數 ,例如, %wZ。 Length 結構的欄位長度,必須設定為以位元組為單位的字串。 MaximumLength 結構的欄位長度,必須設定為以位元組為單位的緩衝區。

通常, Z 型別字元在偵錯函式使用一個格式規格,例如 dbgPrintkdPrint的驅動程式方面所使用。

如果對應於浮點轉換規範的引數是無限,不定或 NAN,下表列出格式化輸出。

Output

+ infinity

1.#INFrandom-digits

– infinity

–1.#INFrandom-digits

無法判斷 (和quiet NaN 相同)

digit. #INDrandom-digits

NAN

digit. #NANrandom-digits

注意事項注意事項

如果對應於 %Z,或者引數對應至 %s 或 %S引數中的 Buffer 欄位,為 null 指標, 「(null)」隨即顯示。

注意事項注意事項

在所有指數格式,指數字的預設數目顯示的是三個。您可以使用 _set_output_format 函式,您可以設定的數字數目會顯示在兩個,但擴展為三,則需要由指數的大小。

安全性注意事項安全性提示

由於 %n 格式是因為在不安全的,預設會停用。如果 %n 在格式字串,遇到無效的參數叫用處理常式,如 參數驗證中所述。若要啟用 %n 支援,請參閱 _set_printf_count_output

請參閱

參考

printf、_printf_l、wprintf、_wprintf_l

格式規格語法:printf 和 wprintf 函式

旗標指示詞

printf 寬度規格

精確度規格

大小規格

_set_output_format