Standard C++ Library Reference ISO/IEC (VERSION3)

function returns EOF; otherwise, it returns (unsigned char)c. A subsequent library
function call that reads a character from the stream stream obtains this stored value, which is
then forgotten.
Thus, you can effectively push back a character to a stream after reading a character. (You
need not push back the same character that you read.) An implementation can let you push back
additional characters before you read the first one. You read the characters in reverse order of
pushing them back to the stream. You cannot portably:
push back more than one character
push back a character if the file-position indicator is at the beginning of the file
Call ftell for a text file that has a character currently pushed back
A call to the functions fseek, fsetpos, or rewind for the stream causes the stream to
forget any pushed-back characters. For a binary stream, the file-position indicator is
decremented for each character that is pushed back.
vfprintf
int vfprintf(FILE *stream, const char *format,
va_list ap);
The function generates formatted text, under the control of the format format and any
additional arguments, and writes each generated character to the stream stream. It returns the
number of characters generated, or it returns a negative value if the function sets the error
indicator for the stream.
The function accesses additional arguments by using the context information designated by ap.
The program must execute the macro va_start before it calls the function, and then execute
the macro va_end after the function returns.
vprintf
int vprintf(const char *format,
va_list ap);
The function generates formatted text, under the control of the format format and any
additional arguments, and writes each generated character to the stream stdout. It returns the
number of characters generated, or a negative value if the function sets the error indicator for
the stream.
The function accesses additional arguments by using the context information designated by ap.
The program must execute the macro va_start before it calls the function, and then execute
the macro va_end after the function returns.