_vscprintf
, _vscprintf_l
, _vscwprintf
, _vscwprintf_l
Returnerar antalet tecken i den formaterade strängen med hjälp av en pekare till en lista med argument.
Syntax
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
);
Parametrar
format
Formatkontrollsträng.
argptr
Pekare till lista över argument.
locale
Språkvarianten som ska användas.
Mer information finns i Formatspecifikationssyntax.
Returvärde
_vscprintf
returnerar det antal tecken som skulle genereras om strängen som pekar på i listan över argument skrevs ut eller skickades till en fil eller buffert med de angivna formateringskoderna. Värdet som returneras innehåller inte det avslutande null-tecknet.
_vscwprintf
utför samma funktion för breda tecken.
Versionerna av dessa funktioner med suffixet _l
är identiska, förutom att de använder språkparametern som skickas i stället för det aktuella trådspråket.
Om format
är en null-pekare anropas den ogiltiga parameterhanteraren enligt beskrivningen i Parameterverifiering. Om körningen tillåts fortsätta returnerar funktionerna -1 och anger errno
till EINVAL
.
Anmärkningar
Returvärde är storleken på de formaterade data. Om funktionen tar en char
buffert är storleken i byte. Om funktionen tar en wchar_t
buffert anger storleken antalet 16-bitars ord.
Tecken refererar till char
tecken för funktioner som tar en char
buffert och för att wchar_t
tecken för funktioner som tar en wchar_t
buffert.
Varje argument
(om någon) konverteras enligt motsvarande formatspecifikation i format
. Formatet består av vanliga tecken och har samma formulär och funktion som argumentet format
för printf
.
Viktig
Kontrollera att om format
är en användardefinierad sträng är den null avslutad och har rätt antal och typ av parametrar. Mer information finns i Undvika buffertöverskridanden.
Från och med Windows 10 version 2004 (version 19041) skriver printf
-serien av funktioner 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 även avrundningsläget för flyttal som anges av fesetround
. Tidigare valde avrundning alltid FE_TONEAREST
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 definierat |
_MBCS definierad |
_UNICODE definierad |
---|---|---|---|
_vsctprintf |
_vscprintf |
_vscprintf |
_vscwprintf |
_vsctprintf_l |
_vscprintf_l |
_vscprintf_l |
_vscwprintf_l |
Krav
Rutin | Obligatoriskt huvud |
---|---|
_vscprintf , _vscprintf_l |
<stdio.h> |
_vscwprintf , _vscwprintf_l |
<stdio.h> eller <wchar.h> |
Mer kompatibilitetsinformation finns i Compatibility.
Exempel
Se exemplet för vsprintf
.
Se även
Stream I/O-
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
funktioner