共用方式為


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

描述格式字串引數的語法與 printfwprintf相關功能。 這些函式已經有更安全的版本;如需詳細資訊,請參閱 CRT 中的安全性功能。 如需個別函式的資訊,請針對特定功能參閱文件。 如需這些函式的清單,請參閱 資料流 I/O

格式規格(由選擇性和必要欄位組成)的格式如下:

%[旗標] [寬度] [.精確度] [{h | l | ll | w | I | I32 | I64}] type

每個格式規格的欄位都是字元或表示特定格式選項或轉換指定名稱的數目。 type 字元指定要套用給引數的轉換類型。 選擇性的 flags、 width和 precision 欄位控制其他的格式方面。 一個基本格式規格包含百分比符號和一個 type 字元,例如 %s表示字串轉換。 如果百分比符號後接著的字元不代表任何格式欄位,則字元將原封不動的輸出。 若要列印百分比符號字元,請使用 %%。

格式規格的欄位控制下列引述轉換和格式化的方面:

  • type
    此為必須的轉換規範字元,判斷相關的 argument 是否被解譯為字元、字串、整數或浮點數。 如需詳細資訊,請參閱printf 類型欄位字元

  • flags
    選擇性的字元,或是控制輸出前置對齊和輸出調整、空白、前置零字元、小數點八進位和十六進位的字元。 如需詳細資訊,請參閱旗標指示詞。 格式指定名稱可出現多個旗標,且旗標能以任何順序排列。

  • width
    選擇性的十進位數字設定輸出字元的下限。 如需詳細資訊,請參閱printf 寬度規格

  • precision
    選擇性的十進位數字,對於字串設定印出的字元數上限,對於浮點數設定有效位數的數目或小數點後的數字位數,對於整數設定印出的數字位數下限。 如需詳細資訊,請參閱精確度規格的《精確度值如何影響型別》。

  • h | l | ll | w | I | I32 | I64
    對 type 的選擇性前置詞指定對應的引數大小。 如需詳細資訊,請參閱大小規格的《大小 (Size) 前置詞》。

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

確定格式規格字串不是使用者定義的。例如,請考慮一個請使用者輸入名稱的程式,將輸入儲存在名為 name的字串變數。若要印出 name,請勿採用此做法:

printf( name ); /* Danger! If name contains "%s", program will crash */

請這樣做:

printf( "%s", name );

請參閱

參考

printf、_printf_l、wprintf、_wprintf_l

printf_s、_printf_s_l、wprintf_s、_wprintf_s_l

printf_p 位置參數

旗標指示詞

printf 寬度規格

精確度規格

大小規格

printf 類型欄位字元