Delen via


fprintf, , _fprintf_lfwprintf, _fwprintf_l, , , _ftprintf_ftprintf_l

Opgemaakte gegevens afdrukken naar een stream. Er zijn veiligere versies van deze functies beschikbaar; zie fprintf_s, _fprintf_s_l, fwprintf_s, . _fwprintf_s_l

Zie _ftprintfAlgemene-tekstfunctietoewijzingen voor en _ftprintf_l

Syntaxis

int fprintf(
   FILE *stream,
   const char *format [,
   argument ]...
);
int _fprintf_l(
   FILE *stream,
   const char *format,
   _locale_t locale [,
   argument ]...
);
int fwprintf(
   FILE *stream,
   const wchar_t *format [,
   argument ]...
);
int _fwprintf_l(
   FILE *stream,
   const wchar_t *format,
   _locale_t locale [,
   argument ]...
);

Parameterwaarden

stream
Aanwijzer naar FILE structuur.

format
Tekenreeks voor besturingselement opmaken.

argument
Optionele argumenten.

locale
De landinstelling die moet worden gebruikt.

Retourwaarde

fprintf retourneert het aantal geschreven bytes. fwprintf retourneert het aantal brede tekens dat is geschreven. Elk van deze functies retourneert in plaats daarvan een negatieve waarde wanneer er een uitvoerfout optreedt. Als stream of format is NULL, roepen deze functies de ongeldige parameterhandler aan, zoals beschreven in parametervalidatie. Als de uitvoering mag doorgaan, keren de functies terug -1 en worden ze ingesteld errno op EINVAL. De notatietekenreeks wordt niet gecontroleerd op geldige opmaaktekens, zoals bij gebruik fprintf_s of fwprintf_s.

Zie , , _doserrnoen _sys_errlist_sys_nerrvoor meer informatie over retourcodeserrno .

Opmerkingen

fprintf 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, het format argument heeft dezelfde syntaxis als in printf.

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

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 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 fprintf fprintf fwprintf
_ftprintf_l _fprintf_l _fprintf_l _fwprintf_l

Zie Specificatiesyntaxis opmaken voor meer informatie.

Behoeften

Functie Vereiste header
fprintf, _fprintf_l <stdio.h>
fwprintf, _fwprintf_l <stdio.h> of <wchar.h>

Zie Compatibiliteit voor meer compatibiliteitsinformatie.

Voorbeeld

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

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

FILE *stream;

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

   fopen_s( &stream, "fprintf.out", "w" );
   fprintf( stream, "%s%c", s, c );
   fprintf( stream, "%d\n", i );
   fprintf( stream, "%f\n", fp );
   fclose( stream );
   system( "type fprintf.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
Syntaxis van formaatspecificatie: printf en wprintf functies