共用方式為


vprintf 函式

每個 vprintf 函式都會接受引數清單的指標,然後設定指定資料的格式,並將其寫入到特定目的地。 函式有數種方式不同:在參數驗證中,函式會採用單一位元組或寬字元字串、輸出目的地,以及指定格式字串中的順序參數支援。

_vcprintf, _vcwprintf
vfprintf, vfwprintf
_vfprintf_p、 、 _vfprintf_p_l_vfwprintf_p_vfwprintf_p_l
vfprintf_s、 、 _vfprintf_s_lvfwprintf_s_vfwprintf_s_l
vprintf, vwprintf
_vprintf_p、 、 _vprintf_p_l_vwprintf_p_vwprintf_p_l
vprintf_s、 、 _vprintf_s_lvwprintf_s_vwprintf_s_l
_vscprintf、 、 _vscprintf_l_vscwprintf_vscwprintf_l
_vsnprintf、 、 _vsnwprintfvsprintfvswprintf
_vsprintf_p、 、 _vsprintf_p_l_vswprintf_p_vswprintf_p_l
vsprintf_s、 、 _vsprintf_s_lvswprintf_s_vswprintf_s_l

備註

vprintf 函式類似下表所列的對應函式。 然而,每個 vprintf 函式都接受引數清單的指標,而每個對應函式都接受引數清單。

這些函式會設定要輸出到目的地的資料格式,如下所示。

函式 對應函式 輸出目的地 參數驗證 位置參數支援
_vcprintf _cprintf 主控台 檢查是否 Null。
_vcwprintf _cwprintf 主控台 檢查是否 Null。
vfprintf fprintf stream 檢查是否 Null。
vfprintf_p fprintf_p stream 檢查 Null 與有效格式。
vfprintf_s fprintf_s stream 檢查 Null 與有效格式。
vfwprintf fwprintf stream 檢查是否 Null。
vfwprintf_p fwprintf_p stream 檢查 Null 與有效格式。
vfwprintf_s fwprintf_s stream 檢查 Null 與有效格式。
vprintf printf stdout 檢查是否 Null。
vprintf_p printf_p stdout 檢查 Null 與有效格式。
vprintf_s printf_s stdout 檢查 Null 與有效格式。
vwprintf wprintf stdout 檢查是否 Null。
vwprintf_p wprintf_p stdout 檢查 Null 與有效格式。
vwprintf_s wprintf_s stdout 檢查 Null 與有效格式。
vsprintf sprintf 所指向的記憶體 buffer 檢查是否 Null。
vsprintf_p sprintf_p 所指向的記憶體 buffer 檢查 Null 與有效格式。
vsprintf_s sprintf_s 所指向的記憶體 buffer 檢查 Null 與有效格式。
vswprintf swprintf 所指向的記憶體 buffer 檢查是否 Null。
vswprintf_p swprintf_p 所指向的記憶體 buffer 檢查 Null 與有效格式。
vswprintf_s swprintf_s 所指向的記憶體 buffer 檢查 Null 與有效格式。
_vscprintf _vscprintf 所指向的記憶體 buffer 檢查是否 Null。
_vscwprintf _vscwprintf 所指向的記憶體 buffer 檢查是否 Null。
_vsnprintf _snprintf 所指向的記憶體 buffer 檢查是否 Null。
_vsnwprintf _snwprintf 所指向的記憶體 buffer 檢查是否 Null。

argptr 引數的類型是 va_list,它是在 VARARGS.H 與 STDARG.H 中所定義。 argptr變數必須由va_start初始化,而且可由後續va_arg呼叫重新初始化;argptr然後指向根據自變數中format對應規格轉換和傳輸輸出的自變數清單開頭。 format具有與的printf自變數相同的表單和函format式。 這些函式都不會叫用 va_end。 如需有關每個 vprintf 函式的完整描述,請參閱上表所列之對應函式的描述。

_vsnprintfvsprintf不同於 ,它會將不超過count位元組寫入 。buffer

名稱中具有 w infix 的這些函式版本是不含 w infix 之對應函式的寬字元版本;在這些寬字元函式中, buffer 而且 format 都是寬字元字串。 否則,每個寬字元函式的運作方式與其 SBCS 對應函式的運作方式相同。

具有和 _p 後綴的這些函_s式版本是更安全的版本。 這些版本會驗證格式字串。 如果格式字串的格式不正確,它們會產生例外狀況(例如,如果使用無效的格式字元)。

這些函 _p 式的後置詞版本可讓您指定格式字串中提供的自變數取代的順序。 如需詳細資訊,請參閱 printf_p 位置參數

針對vsprintfvswprintf_vsnprintf_vsnwprintf,如果複製發生在重疊的字串之間,則行為是未定義的。

重要

確認 format 不是使用者定義的字串。 如需詳細資訊,請參閱 Avoiding Buffer Overruns (避免緩衝區滿溢)。 如果使用這些函式的安全版本(或_s_p後綴),則使用者提供的格式字串可能會觸發無效的參數例外狀況,如果使用者提供的字串包含無效的格式字元。

另請參閱

資料流 I/O
fprintf、 、 _fprintf_lfwprintf_fwprintf_l
printf、 、 _printf_lwprintf_wprintf_l
sprintf、、 _sprintf_lswprintf_swprintf_l__swprintf_l
va_arg、 、 va_copyva_endva_start