Delen via


_vscprintf, _vscprintf_l, _vscwprintf, _vscwprintf_l

Retourneert het aantal tekens in de opgemaakte tekenreeks met behulp van een aanwijzer naar een lijst met argumenten.

Syntaxis

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
);

Parameters

format
Tekenreeks voor besturingselement opmaken.

argptr
Aanwijzer naar lijst met argumenten.

locale
De landinstelling die moet worden gebruikt.

Zie Syntaxis van specificatie opmakenvoor meer informatie.

Retourwaarde

_vscprintf retourneert het aantal tekens dat wordt gegenereerd als de tekenreeks waarnaar wordt verwezen door de lijst met argumenten is afgedrukt of verzonden naar een bestand of buffer met behulp van de opgegeven opmaakcodes. De geretourneerde waarde bevat niet het null-teken dat wordt beƫindigd. _vscwprintf voert dezelfde functie uit voor brede tekens.

De versies van deze functies met het achtervoegsel _l zijn identiek, behalve dat ze de landinstellingsparameter gebruiken die wordt doorgegeven in plaats van de huidige landinstelling voor threads.

Als format een null-aanwijzer is, wordt de ongeldige parameterhandler aangeroepen, zoals beschreven in parametervalidatie. Als de uitvoering mag worden voortgezet, retourneren de functies -1 en stellen ze errno in op EINVAL.

Opmerkingen

Retourwaarde is de grootte van de opgemaakte gegevens. Als de functie een char buffer gebruikt, is de grootte in bytes. Als de functie een wchar_t buffer gebruikt, geeft de grootte het aantal 16-bits woorden op. Tekens verwijzen naar char tekens voor functies die een char buffer nemen en wchar_t tekens voor functies die een wchar_t buffer nemen.

Elke argument (indien aanwezig) wordt geconverteerd volgens de bijbehorende indelingsspecificatie in format. De notatie bestaat uit gewone tekens en heeft dezelfde vorm en functie als het argument format voor printf.

Belangrijk

Zorg ervoor dat als format een door de gebruiker gedefinieerde tekenreeks is, deze null is beƫindigd en het juiste aantal en het juiste type parameters heeft. Zie Bufferoverschrijdingen voorkomenvoor meer informatie.

Vanaf Windows 10 versie 2004 (build 19041) worden met de printf reeks functies exact drijvendekommagetallen afgedrukt volgens de IEEE 754-regels voor afronding. In eerdere versies van Windows zouden de zwevende kommanummers die eindigen op '5' altijd naar boven afronden. IEEE 754 geeft aan dat ze moeten afronden op het dichtstbijzijnde even cijfer (ook wel bekend als 'Afronding van bankier'). Bijvoorbeeld, zowel printf("%1.0f", 1.5) als printf("%1.0f", 2.5) moet afronden op 2. Voorheen zou 1,5 afronden op 2 en 2,5 naar 3. Deze wijziging is alleen van invloed op exact vertegenwoordigbare getallen. Bijvoorbeeld: 2.35 (die, wanneer deze wordt weergegeven in het geheugen, dichter bij 2.350000000000008) blijft afronden tot 2,4. Afronding die door deze functies wordt uitgevoerd, respecteert nu ook de drijvende-komma-afrondingsmodus die is ingesteld door fesetround. Eerder koos afronding altijd FE_TONEAREST gedrag. Deze wijziging is alleen van invloed op programma's die zijn gebouwd met Visual Studio 2019 versie 16.2 en hoger. Als u het verouderde drijvendekomma-afrondingsgedrag wilt gebruiken, moet u een koppeling maken met legacy_stdio_float_rounding.obj.

Algemene routinetoewijzingen voor tekst

TCHAR. H-routine _UNICODE en _MBCS niet gedefinieerd _MBCS gedefinieerd _UNICODE gedefinieerd
_vsctprintf _vscprintf _vscprintf _vscwprintf
_vsctprintf_l _vscprintf_l _vscprintf_l _vscwprintf_l

Eisen

Routine Vereiste header
_vscprintf, _vscprintf_l <stdio.h>
_vscwprintf, _vscwprintf_l <stdio.h> of <wchar.h>

Zie Compatibiliteitsvoor meer compatibiliteitsinformatie.

Voorbeeld

Zie het voorbeeld voor vsprintf.

Zie ook

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 functies