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
, , _vsnwprintf
vsprintf
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_start a 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