_fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l
The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.
The latest version of this topic can be found at _fprintf_p, _fprintf_p_l, _fwprintf_p, _fwprintf_p_l.
Prints formatted data to a stream.
Syntax
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 ]...
);
Parameters
stream
Pointer to the FILE
structure.
format
Format-control string.
argument
Optional arguments.
locale
The locale to use.
Return Value
_fprintf_p
and _fwprintf_p
return the number of characters written or return a negative value when an output error occurs.
Remarks
_fprintf_p
formats and prints a series of characters and values to the output stream
. Each function argument
(if any) is converted and output according to the corresponding format specification in format
. For _fprintf_p
, the format
argument has the same syntax and use that it has in _printf_p
. These functions support positional parameters, meaning that the order of the parameters used by the format string can be changed. For more information about positional parameters, see printf_p Positional Parameters.
_fwprintf_p
is a wide-character version of _fprintf_p
; in _fwprintf_p
, format
is a wide-character string. These functions behave identically if the stream is opened in ANSI mode. _fprintf_p
doesn't currently support output into a UNICODE stream.
The versions of these functions with the _l
suffix are identical except that they use the locale parameter passed in instead of the current locale.
Important
Ensure that format
is not a user-defined string.
Like the non-secure versions (see fprintf, _fprintf_l, fwprintf, _fwprintf_l), these functions validate their parameters and invoke the invalid parameter handler, as described in Parameter Validation, if either stream
or format
is a null pointer or if there are any unknown or badly formed formatting specifiers. If execution is allowed to continue, the functions return -1 and set errno
to EINVAL
.
Generic-Text Routine Mappings
Tchar.h routine | _UNICODE and _MBCS not defined | _MBCS defined | _UNICODE defined |
---|---|---|---|
_ftprintf_p |
_fprintf_p |
_fprintf_p |
_fwprintf_p |
_ftprintf_p_l |
_fprintf_p_l |
_fprintf_p_l |
_fwprintf_p_l |
For more information, see Format Specifications.
Requirements
Function | Required header |
---|---|
_fprintf_p , _fprintf_p_l |
<stdio.h> |
_fwprintf_p , _fwprintf_p_l |
<stdio.h> or <wchar.h> |
For more compatibility information, see Compatibility in the Introduction.
Example
// 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
.NET Framework Equivalent
System::IO::StreamWriter::Write
See Also
Stream I/O
_cprintf, _cprintf_l, _cwprintf, _cwprintf_l
fscanf, _fscanf_l, fwscanf, _fwscanf_l
sprintf, _sprintf_l, swprintf, _swprintf_l, __swprintf_l
printf_p Positional Parameters
_cprintf_p, _cprintf_p_l, _cwprintf_p, _cwprintf_p_l
_cprintf_s, _cprintf_s_l, _cwprintf_s, _cwprintf_s_l
printf_p Positional Parameters
fscanf_s, _fscanf_s_l, fwscanf_s, _fwscanf_s_l