Delen via


_fprintf_p, , _fprintf_p_l_ftprintf_p, _ftprintf_p_l, , , _fwprintf_p_fwprintf_p_l

Hiermee worden opgemaakte gegevens afgedrukt naar een stream.

Zie _ftprintf_pAlgemene-tekstfunctietoewijzingen voor en _ftprintf_p_l

Syntaxis

int _fprintf_p(
   FILE *stream,
   const char *format [,
   argument ]...
);
int _fprintf_p_l(
   FILE *stream,
   const char *format,
   _locale_t locale [,
   argument ]...
);
int _fwprintf_p(
   FILE *stream,
   const wchar_t *format [,
   argument ]...
);
int _fwprintf_p_l(
   FILE *stream,
   const wchar_t *format,
   _locale_t locale [,
   argument ]...
);

Parameterwaarden

stream
Wijs de FILE structuur aan.

format
Tekenreeks voor besturingselement opmaken.

argument
Optionele argumenten.

locale
De landinstelling die moet worden gebruikt.

Retourwaarde

_fprintf_p en _fwprintf_p retourneert het aantal geschreven tekens of retourneert een negatieve waarde wanneer er een uitvoerfout optreedt.

Opmerkingen

_fprintf_p hiermee wordt een reeks tekens en waarden opgemaakt en afgedrukt in de uitvoer stream. Elke functie argument (indien aanwezig) wordt geconverteerd en uitvoer volgens de bijbehorende indelingsspecificatie in format. Voor _fprintf_p, het format argument heeft dezelfde syntaxis als in _printf_p. Deze functies ondersteunen positionele parameters, wat betekent dat de volgorde van de parameters die door de notatietekenreeks worden gebruikt, kan worden gewijzigd. Zie printf_p Positionele parameters voor meer informatie over positionele parameters.

_fwprintf_p is een brede tekenreeks van _fprintf_p; in _fwprintf_p, format is een tekenreeks met breed teken. Deze functies gedragen zich identiek als de stream wordt geopend in de ANSI-modus. _fprintf_p ondersteunt momenteel geen uitvoer in een UNICODE-stream.

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

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.

Net als de niet-beveiligde versies (zie fprintf, _fprintf_l, fwprintf, ), _fwprintf_lvalideren deze functies hun parameters en roepen ze de ongeldige parameterhandler aan, zoals beschreven in parametervalidatie, als stream dit een null-aanwijzer is of format als er onbekende of ongeldig gevormde opmaakaanduidingen zijn. Als de uitvoering mag doorgaan, keren de functies terug -1 en worden ze ingesteld errno op EINVAL.

Algemene functietoewijzingen voor tekst

De functie in de tchar.h kolom wordt toegewezen aan de functie in de andere kolommen, afhankelijk van de tekenset die tijdens het compileren is gedefinieerd.

tchar.h functie _UNICODE en _MBCS niet gedefinieerd _MBCS Gedefinieerd _UNICODE Gedefinieerd
_ftprintf_p _fprintf_p _fprintf_p _fwprintf_p
_ftprintf_p_l _fprintf_p_l _fprintf_p_l _fwprintf_p_l

Zie Specificatiesyntaxis opmaken voor meer informatie.

Behoeften

Functie Vereiste header
_fprintf_p, _fprintf_p_l <stdio.h>
_fwprintf_p, _fwprintf_p_l <stdio.h> of <wchar.h>

Zie Compatibiliteit voor meer compatibiliteitsinformatie.

Voorbeeld

// crt_fprintf_p.c
// This program uses _fprintf_p to format various
// data and print it to the file named FPRINTF_P.OUT. It
// then displays FPRINTF_P.OUT on the screen using the system
// function to invoke the operating-system TYPE command.
//

#include <stdio.h>
#include <process.h>

int main( void )
{
    FILE    *stream = NULL;
    int     i = 10;
    double  fp = 1.5;
    char    s[] = "this is a string";
    char    c = '\n';

    // Open the file
    if ( fopen_s( &stream, "fprintf_p.out", "w" ) == 0)
    {
        // Format and print data
        _fprintf_p( stream, "%2$s%1$c", c, s );
        _fprintf_p( stream, "%d\n", i );
        _fprintf_p( stream, "%f\n", fp );

        // Close the file
        fclose( stream );
    }

    // Verify our data
    system( "type fprintf_p.out" );
}
this is a string
10
1.500000

Zie ook

Stream I/O-
_cprintf, , , _cprintf_l_cwprintf_cwprintf_l
fscanf, , , _fscanf_lfwscanf_fwscanf_l
sprintf swprintf, _sprintf_l, _swprintf_l__swprintf_l
printf_p positionele parameters
_cprintf_p, , , _cprintf_p_l_cwprintf_p_cwprintf_p_l
_cprintf_s, , , _cprintf_s_l_cwprintf_s_cwprintf_s_l
printf_p positionele parameters
fscanf_s, , , _fscanf_s_lfwscanf_s_fwscanf_s_l