Sdílet prostřednictvím


vprintf – funkce

Každá funkce vprintf vezme ukazatel na seznam argumentů a pak naformátuje a zapíše daná data do konkrétního cíle. Funkce se liší několika způsoby: v ověření parametru, ať už funkce přebírají řetězce s jedním bajtem nebo širokými znaky, výstupní cíl a podporu pro zadání parametrů pořadí se používají ve formátovacím řetězci.

_vcprintf, _vcwprintf
vfprintf, vfwprintf
_vfprintf_p, _vfprintf_p_l, _vfwprintf_p, _vfwprintf_p_l
vfprintf_s, _vfprintf_s_l, vfwprintf_s, _vfwprintf_s_l
vprintf, vwprintf
_vprintf_p, _vprintf_p_l, _vwprintf_p, _vwprintf_p_l
vprintf_s, _vprintf_s_l, vwprintf_s, _vwprintf_s_l
_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l
_vsnprintf, _vsnwprintfvsprintf, vswprintf
_vsprintf_p, _vsprintf_p_l, _vswprintf_p, _vswprintf_p_l
vsprintf_s, _vsprintf_s_l, vswprintf_s, _vswprintf_s_l

Poznámky

Funkce vprintf jsou podobné funkcím jejich protějšku, jak je uvedeno v následující tabulce. Každá vprintf funkce však přijímá ukazatel na seznam argumentů, zatímco každá funkce protějšku přijímá seznam argumentů.

Tyto funkce formátují data pro výstup do cílů následujícím způsobem.

Function Funkce protějšek Cíl výstupu Ověřování parametru Podpora pozičních parametrů
_vcprintf _cprintf konzola Zkontrolujte hodnotu null. Ne
_vcwprintf _cwprintf konzola Zkontrolujte hodnotu null. Ne
vfprintf fprintf stream Zkontrolujte hodnotu null. Ne
vfprintf_p fprintf_p stream Zkontrolujte hodnotu null a platný formát. Ano
vfprintf_s fprintf_s stream Zkontrolujte hodnotu null a platný formát. Ne
vfwprintf fwprintf stream Zkontrolujte hodnotu null. Ne
vfwprintf_p fwprintf_p stream Zkontrolujte hodnotu null a platný formát. Ano
vfwprintf_s fwprintf_s stream Zkontrolujte hodnotu null a platný formát. Ne
vprintf printf stdout Zkontrolujte hodnotu null. Ne
vprintf_p printf_p stdout Zkontrolujte hodnotu null a platný formát. Ano
vprintf_s printf_s stdout Zkontrolujte hodnotu null a platný formát. Ne
vwprintf wprintf stdout Zkontrolujte hodnotu null. Ne
vwprintf_p wprintf_p stdout Zkontrolujte hodnotu null a platný formát. Ano
vwprintf_s wprintf_s stdout Zkontrolujte hodnotu null a platný formát. Ne
vsprintf sprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne
vsprintf_p sprintf_p paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null a platný formát. Ano
vsprintf_s sprintf_s paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null a platný formát. Ne
vswprintf swprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne
vswprintf_p swprintf_p paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null a platný formát. Ano
vswprintf_s swprintf_s paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null a platný formát. Ne
_vscprintf _vscprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne
_vscwprintf _vscwprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne
_vsnprintf _snprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne
_vsnwprintf _snwprintf paměť, na kterou odkazuje buffer Zkontrolujte hodnotu null. Ne

Argument argptr má typ va_list, který je definován v VARARGS. H a STDARG.H. Proměnná argptr musí být inicializována va_starta může být znovu inicializována následnými va_arg voláními; argptr pak odkazuje na začátek seznamu argumentů, které jsou převedeny a přenášeny pro výstup podle odpovídajících specifikací v argumentuformat. format má stejný tvar a funkci jako format argument pro printf. Žádná z těchto funkcí nevolá va_end. Podrobnější popis jednotlivých vprintf funkcí najdete v popisu jeho funkce protějšku, jak je uvedeno v předchozí tabulce.

_vsnprintf se liší od vsprintf toho, že zapisuje maximálně count bajty do buffer.

Verze těchto funkcí s příponou wfix v názvu jsou širokoznační verze odpovídajících funkcí bez přípony w ; v každé z těchto širokoúhlých funkcí buffer a format jsou řetězce širokého znaku. Jinak se každá funkce širokého znaku chová stejně jako funkce protějšek SBCS.

Verze těchto funkcí s příponami _s_p jsou bezpečnější verze. Tyto verze ověřují formátovací řetězce. Vygenerují výjimku, pokud formátovací řetězec není správně vytvořený (například pokud se použijí neplatné znaky formátování).

Verze těchto funkcí s příponou _p umožňují určit pořadí, ve kterém jsou zadané argumenty nahrazeny ve formátovacím řetězci. Další informace najdete v tématu printf_p poziční parametry.

Pro vsprintf, vswprintf_vsnprintf a _vsnwprintf, pokud kopírování probíhá mezi řetězci, které se překrývají, chování není definováno.

Důležité

Ujistěte se, že format není uživatelem definovaný řetězec. Další informace najdete v tématu Zabránění přetečení vyrovnávací paměti. Pokud používáte zabezpečené verze těchto funkcí (buď _s_p přípony), řetězec formátu zadaný uživatelem může aktivovat neplatnou výjimku parametru, pokud řetězec zadaný uživatelem obsahuje neplatné znaky formátování.

Viz také

Vstupně-výstupní operace streamu
fprintf, _fprintf_l, fwprintf, _fwprintf_l
printf, _printf_l, wprintf, _wprintf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
va_arg, va_copy, va_end, va_start