Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Retourneert het aantal tekens in de opgemaakte tekenreeks, met de mogelijkheid om de volgorde op te geven waarin parameters worden gebruikt in de notatietekenreeks.
Syntaxis
int _scprintf_p(
const char *format [,
argument] ...
);
int _scprintf_p_l(
const char *format,
_locale_t locale [,
argument] ...
);
int _scwprintf_p (
const wchar_t *format [,
argument] ...
);
int _scwprintf_p _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.
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_p voert dezelfde functie uit voor brede tekens.
Het verschil tussen _scprintf_p en _scprintf is dat ondersteuning _scprintf_p biedt voor positionele parameters, waarmee u de volgorde kunt opgeven waarin de argumenten worden gebruikt in de notatietekenreeks. Zie printf_p Positieparameters voor meer informatie.
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_p |
_scprintf_p |
_scprintf_p |
_scwprintf_p |
_sctprintf_p_l |
_scprintf_p_l |
_scprintf_p_l |
_scwprintf_p_l |
Behoeften
| Routine | Vereiste header |
|---|---|
_scprintf_p, _scprintf_p_l |
<stdio.h> |
_scwprintf_p, _scwprintf_p_l |
<stdio.h> of <wchar.h> |
Zie Compatibiliteit voor meer compatibiliteitsinformatie.
Zie ook
Stream I/O-
_scprintf, , , _scprintf_l_scwprintf_scwprintf_l
_printf_p, , , _printf_p_l_wprintf_p_wprintf_p_l