Sdílet prostřednictvím


_vprintf_p, _vprintf_p_l, , _vwprintf_p_vwprintf_p_l

Zapisuje formátovaný výstup pomocí ukazatele na seznam argumentů a umožňuje specifikaci pořadí, ve kterém se argumenty používají.

Syntaxe

int _vprintf_p(
   const char *format,
   va_list argptr
);
int _vprintf_p_l(
   const char *format,
   _locale_t locale,
   va_list argptr
);
int _vwprintf_p(
   const wchar_t *format,
   va_list argptr
);
int _vwprintf_p_l(
   const wchar_t *format,
   _locale_t locale,
   va_list argptr
);

Parametry

format
Specifikace formátu

argptr
Ukazatel na seznam argumentů

locale
Národní prostředí, které se má použít

Další informace naleznete v tématu Syntaxe specifikace formátu.

Vrácená hodnota

_vprintf_p a _vwprintf_p vrátí počet zapsaných znaků, které neobsahují ukončující znak null nebo zápornou hodnotu, pokud dojde k výstupní chybě.

Poznámky

Každá z těchto funkcí přebírá ukazatel na seznam argumentů, pak formátuje a zapisuje daná data do stdout. Tyto funkce se liší od vprintf_s a vwprintf_s pouze v tom, že podporují schopnost určit pořadí, ve kterém se argumenty používají. Další informace najdete v tématu printf_p poziční parametry.

_vwprintf_p je širokoznačná verze _vprintf_p; dvě funkce se chovají stejně, pokud je datový proud otevřen v režimu ANSI. _vprintf_p v současné době nepodporuje výstup do datového proudu UNICODE.

Verze těchto funkcí s příponou _l jsou shodné s tím rozdílem, že používají parametr národního prostředí předaný místo aktuálního národního prostředí vlákna.

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. Počínaje Windows 10 verze 2004 (build 19041) printf vytiskne řada funkcí přesně reprezentovatelná čísla s plovoucí desetinnou čárkou podle pravidel IEEE 754 pro zaokrouhlování. V předchozích verzích Windows by se vždy zaokrouhlila přesně reprezentovatelná čísla s plovoucí desetinnou čárkou končící na 5. IEEE 754 uvádí, že musí zaokrouhlit na nejbližší sudou číslici (označované také jako "Zaokrouhlování bankera"). Například obě printf("%1.0f", 1.5) a printf("%1.0f", 2.5) měly by se zaokrouhlit na 2. Dříve by se 1,5 zaokrouhlo na 2 a 2,5 by se zaokrouhlilo na 3. Tato změna má vliv jenom na přesně reprezentovatelná čísla. Například hodnota 2,35 (která je při znázornění v paměti blíže 2,350000000000008) pokračuje zaokrouhlit nahoru na 2,4. Zaokrouhlování provedené těmito funkcemi nyní respektuje také režim zaokrouhlování s plovoucí desetinou čárkou nastavený .fesetround Dříve bylo zaokrouhlení vždy zvoleno FE_TONEAREST chování. Tato změna má vliv jenom na programy vytvořené pomocí sady Visual Studio 2019 verze 16.2 a novější. Pokud chcete použít starší chování zaokrouhlení s plovoucí desetinou čárkou, použijte odkaz na legacy_stdio_float_rounding.obj.

Pokud format je ukazatel null nebo pokud formátovací řetězec obsahuje neplatné znaky formátování, je vyvolána neplatná obslužná rutina parametru, jak je popsáno v ověření parametru. Pokud je možné pokračovat spuštěním, funkce vrátí hodnotu -1 a nastaví errno se na EINVALhodnotu .

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_vtprintf_p _vprintf_p _vprintf_p _vwprintf_p
_vtprintf_p_l _vprintf_p_l _vprintf_p_l _vwprintf_p_l

Požadavky

Rutina Požadovaný hlavičkový soubor Volitelná záhlaví
_vprintf_p, _vprintf_p_l <stdio.h> a <stdarg.h> <varargs.h>*
_vwprintf_p, _vwprintf_p_l <stdio.h> nebo <wchar.h> a <stdarg.h> <varargs.h>*

* Požadováno pro kompatibilitu se systémem UNIX V.

Konzola není podporována v aplikacích pro Univerzální platforma Windows (UPW). Standardní zpracování datových proudů, které jsou přidružené ke konzole , a , stderrmusí být přesměrovány před tím, stdinstdoutnež je funkce runtime jazyka C mohou používat v aplikacích pro UPW. Další informace o kompatibilitě najdete v tématu Kompatibilita.

Viz také

Vstupně-výstupní operace streamu
vprintf – funkce
_fprintf_p, _fprintf_p_l, , _fwprintf_p_fwprintf_p_l
_printf_p, _printf_p_l, , _wprintf_p_wprintf_p_l
_sprintf_p, _sprintf_p_l, , _swprintf_p_swprintf_p_l
vsprintf_s, _vsprintf_s_l, , vswprintf_s_vswprintf_s_l
va_arg, va_copy, , va_endva_start
_vfprintf_p, _vfprintf_p_l, , _vfwprintf_p_vfwprintf_p_l
_printf_p, _printf_p_l, , _wprintf_p_wprintf_p_l
printf_p – poziční parametry