Sdílet prostřednictvím


_vscprintf, _vscprintf_l, , _vscwprintf_vscwprintf_l

Vrátí počet znaků ve formátovaného řetězci pomocí ukazatele na seznam argumentů.

Syntaxe

int _vscprintf(
   const char *format,
   va_list argptr
);
int _vscprintf_l(
   const char *format,
   _locale_t locale,
   va_list argptr
);
int _vscwprintf(
   const wchar_t *format,
   va_list argptr
);
int _vscwprintf_l(
   const wchar_t *format,
   _locale_t locale,
   va_list argptr
);

Parametry

format
Řetězec řízení 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

_vscprintf vrátí počet znaků, které by se vygenerovaly, pokud byl řetězec odkazovaný seznamem argumentů vytištěn nebo odeslán do souboru nebo vyrovnávací paměti pomocí zadaných kódů formátování. Vrácená hodnota neobsahuje ukončující znak null. _vscwprintf provede stejnou funkci pro široké znaky.

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.

Pokud format je ukazatel null, 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 .

Poznámky

Každý argument (pokud existuje) je převeden podle odpovídající specifikace formátu v format. Formát se skládá z obyčejných znaků a má stejný tvar a funkci jako format argument pro printf.

Důležité

Ujistěte se, že pokud format je uživatelem definovaný řetězec, je null ukončen a má správný počet a typ parametrů. 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ší. Chcete-li použít starší chování zaokrouhlování s plovoucí desetinou čárkou, propojte s legacy_stdio_float_rounding.obj.

Mapování rutin obecného textu

Rutina TCHAR.H _UNICODE a _MBCS není definován _MBCS definovaný _UNICODE definovaný
_vsctprintf _vscprintf _vscprintf _vscwprintf
_vsctprintf_l _vscprintf_l _vscprintf_l _vscwprintf_l

Požadavky

Rutina Požadovaný hlavičkový soubor
_vscprintf, _vscprintf_l <stdio.h>
_vscwprintf, _vscwprintf_l <stdio.h> nebo <wchar.h>

Další informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

Podívejte se na příklad pro vsprintf.

Viz také

Vstupně-výstupní operace streamu
fprintf, _fprintf_l, , fwprintf_fwprintf_l
printf, _printf_l, , wprintf_wprintf_l
scanf, _scanf_l, , wscanf_wscanf_l
sscanf, _sscanf_l, , swscanf_swscanf_l
vprintf – funkce