Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Skriver formaterade utdata med hjälp av en pekare till en lista med argument. Dessa versioner av vprintf, _vprintf_l, vwprintf, _vwprintf_l har säkerhetsförbättringar enligt beskrivningen i Säkerhetsfunktioner i CRT.
Syntax
int vprintf_s(
const char *format,
va_list argptr
);
int _vprintf_s_l(
const char *format,
_locale_t locale,
va_list argptr
);
int vwprintf_s(
const wchar_t *format,
va_list argptr
);
int _vwprintf_s_l(
const wchar_t *format,
_locale_t locale,
va_list argptr
);
Parameterar
format
Specifikation av format.
argptr
Pekare till en lista med argument.
locale
Språkvarianten som ska användas.
Mer information finns i Syntax för formatspecifikation.
Returvärde
vprintf_s och vwprintf_s returnera antalet tecken som skrivits, inklusive det avslutande null-tecknet eller ett negativt värde om ett utdatafel inträffar. Om format är en null-pekare eller om formatsträngen innehåller ogiltiga formateringstecken anropas den ogiltiga parameterhanteraren enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta returnerar funktionerna -1 och ställs in errno på EINVAL.
Mer information om dessa och andra felkoder finns i errno, _doserrno, _sys_errlist, och _sys_nerr.
Anmärkningar
Var och en av dessa funktioner tar en pekare till en argumentlista, formaterar och skriver sedan angivna data till stdout.
De säkra versionerna av dessa funktioner skiljer sig från vprintf och vwprintf endast på så sätt kontrollerar de säkra versionerna att formatsträngen innehåller giltiga formateringstecken.
vwprintf_s är wide-character-versionen av vprintf_s; de två funktionerna fungerar identiskt om strömmen öppnas i ANSI-läge.
vprintf_s stöder för närvarande inte utdata till en UNICODE-ström.
Versionerna av dessa funktioner med suffixet _l är identiska, förutom att de använder parametern locale som skickas i stället för den aktuella trådspråkinställningen.
Viktigt!
Kontrollera att det format inte är en användardefinierad sträng. Mer information finns i Undvika buffertöverskridningar.
Från och med Windows 10 version 2004 (version 19041) skriver funktionsfamiljen printf ut exakt representerande flyttalsnummer enligt IEEE 754-reglerna för avrundning. I tidigare versioner av Windows skulle exakt representerande flyttalsnummer som slutar på "5" alltid avrunda uppåt. IEEE 754 anger att de måste avrunda till den närmaste jämna siffran (även kallat "Bankers avrundning"). Till exempel bör både printf("%1.0f", 1.5) och printf("%1.0f", 2.5) avrunda till 2. Tidigare skulle 1,5 avrunda till 2 och 2,5 skulle avrunda till 3. Den här ändringen påverkar endast exakt representerande tal. Till exempel fortsätter 2.35 (som, när det representeras i minnet, är närmare 2.3500000000000000008) att avrunda upp till 2,4. Avrundning som utförs av dessa funktioner respekterar nu också flyttalsrundningsläget som anges av fesetround. Tidigare valde FE_TONEAREST avrundning alltid beteende. Den här ändringen påverkar endast program som skapats med Visual Studio 2019 version 16.2 och senare. Om du vill använda det äldre avrundningsbeteendet för flyttalser länkar du till legacy_stdio_float_rounding.obj.
Allmän textrutinmappning
| TCHAR. H-rutin |
_UNICODE och _MBCS inte definierad |
_MBCS definierad |
_UNICODE definierad |
|---|---|---|---|
_vtprintf_s |
vprintf_s |
vprintf_s |
vwprintf_s |
_vtprintf_s_l |
_vprintf_s_l |
_vprintf_s_l |
_vwprintf_s_l |
Kravspecifikation
| Rutin | Obligatoriskt huvud | Valfria rubriker |
|---|---|---|
vprintf_s, _vprintf_s_l |
<stdio.h> och <stdarg.h> | <varargs.h>* |
vwprintf_s, _vwprintf_s_l |
<stdio.h> eller <wchar.h> och <stdarg.h> | <varargs.h>* |
* Krävs för UNIX V-kompatibilitet.
Konsolen stöds inte i UWP-appar (Universal Windows Platform). Standardströmhandtagen som är associerade med konsolen, , stdinstdoutoch stderr, måste omdirigeras innan C-körningsfunktioner kan använda dem i UWP-appar. Mer kompatibilitetsinformation finns i Kompatibilitet.
Se även
Strömma I/O
vprintf funktioner
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_endva_start