function
<cstdio>
vfprintf
int vfprintf ( FILE * stream, const char * format, va_list arg );
Write formatted data from variable argument list to stream
Writes the C string pointed by format to the stream, replacing any format specifier in the same way as printf does, but using the elements in the variable argument list identified by arg instead of additional function arguments.
Internally, the function retrieves arguments from the list identified by arg as if va_arg was used on it, and thus the state of arg is likely altered by the call.
In any case, arg should have been initialized by va_start at some point before the call, and it is expected to be released by va_end at some point after the call.
Parameters
- stream
- Pointer to a FILE object that identifies an output stream.
- format
- C string that contains a format string that follows the same specifications as format in printf (see printf for details).
- arg
- A value identifying a variable arguments list initialized with va_start.
va_list is a special type defined in <cstdarg>.
Return Value
On success, the total number of characters written is returned.
If a writing error occurs, the error indicator (ferror) is set and a negative number is returned.
If a multibyte character encoding error occurs while writing wide characters, errno is set to EILSEQ and a negative number is returned.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
|
/* vfprintf example */
#include <stdio.h>
#include <stdarg.h>
void WriteFormatted (FILE * stream, const char * format, ...)
{
va_list args;
va_start (args, format);
vfprintf (stream, format, args);
va_end (args);
}
int main ()
{
FILE * pFile;
pFile = fopen ("myfile.txt","w");
WriteFormatted (pFile,"Call with %d variable argument.\n",1);
WriteFormatted (pFile,"Call with %d variable %s.\n",2,"arguments");
fclose (pFile);
return 0;
}
|
The example demonstrates how the WriteFormatted can be called with a different number of arguments, which are on their turn passed to the vfprintf function.
myfile.txt would contain:
myfile.txt |
Call with 1 variable argument.
Call with 2 variable arguments. |
See also
- vprintf
- Print formatted data from variable argument list to stdout (function)
- vsprintf
- Write formatted data from variable argument list to string (function)
- fprintf
- Write formatted data to stream (function)
- printf
- Print formatted data to stdout (function)