Delen via


_scprintf,_scprintf_l,_scwprintf,_scwprintf_l

Retourneert het aantal tekens in de opgemaakte tekenreeks.

Syntaxis

int _scprintf(
   const char *format [,
   argument] ...
);
int _scprintf_l(
   const char *format,
   _locale_t locale [,
   argument] ...
);
int _scwprintf(
   const wchar_t *format [,
   argument] ...
);
int _scwprintf_l(
   const wchar_t *format,
   _locale_t locale [,
   argument] ...
);

Parameterwaarden

format
Tekenreeks voor besturingselement opmaken.

argument
Optionele argumenten.

locale
De landinstelling die moet worden gebruikt.

Zie Specificatiesyntaxis opmaken voor meer informatie.

Retourwaarde

Retourneert het aantal tekens dat wordt gegenereerd als de tekenreeks moet worden 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. _scwprintf voert dezelfde functie uit voor brede tekens.

Als format dit een NULL aanwijzer is, wordt de ongeldige parameterhandler aangeroepen, zoals beschreven in parametervalidatie. Als de uitvoering mag doorgaan, worden deze functies teruggezet -1 en ingesteld errno op EINVAL.

Zie , errno, en _doserrno_sys_errlistvoor meer informatie over deze en andere foutcodes_sys_nerr .

Opmerkingen

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.

De versies van deze functies met het _l achtervoegsel zijn identiek, behalve dat ze de locale-parameter gebruiken die wordt doorgegeven in plaats van de huidige thread-locale.

Belangrijk

Zorg ervoor dat dit format geen door de gebruiker gedefinieerde tekenreeks is.

Vanaf Windows 10 versie 2004 (build 19041) drukt de printf reeks functies exact vertegenwoordigbare zwevende kommanummers af 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'). Beide moeten bijvoorbeeld printf("%1.0f", 1.5)printf("%1.0f", 2.5) worden afgerond 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 voor 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
_sctprintf _scprintf _scprintf _scwprintf
_sctprintf_l _scprintf_l _scprintf_l _scwprintf_l

Behoeften

Routine Vereiste header
_scprintf, _scprintf_l <stdio.h>
_scwprintf, _scwprintf_l <stdio.h> of <wchar.h>

Zie Compatibiliteit voor meer compatibiliteitsinformatie.

Voorbeeld

// crt__scprintf.c

#define _USE_MATH_DEFINES

#include <stdio.h>
#include <math.h>
#include <malloc.h>

int main( void )
{
   int count;
   int size;
   char *s = NULL;

   count = _scprintf( "The value of Pi is calculated to be %f.\n",
                      M_PI);

   size = count + 1; // the string will need one more char for the null terminator
   s = malloc(sizeof(char) * size);
   sprintf_s(s, size, "The value of Pi is calculated to be %f.\n",
                      M_PI);
   printf("The length of the following string will be %i.\n", count);
   printf("%s", s);
   free( s );
}
The length of the following string will be 46.
The value of Pi is calculated to be 3.141593.

Zie ook

Stream I/O-
fprintf, , , _fprintf_lfwprintf_fwprintf_l
printf, , , _printf_lwprintf_wprintf_l
scanf, , , _scanf_lwscanf_wscanf_l
sscanf, , , _sscanf_lswscanf_swscanf_l
vprintf functies