C++ fprintf()

fprintf() prototype

int fprintf(FILE* stream, const char* format, ...);

The fprintf() function writes the string pointed to by format to the stream stream. The string format may contain format specifiers starting with % which are replaced by the values of variables that are passed to the fprintf() function as additional arguments.

It is defined in <cstdio> header file.

fprintf() Parameters

  • stream: Pointer to an output file stream where the contents are written.
  • format: Pointer to a null terminated string that is written to the file stream. It consists of characters along with optional format specifiers starting with %.

    The format specifiers are replaced by the values of respective variables that follows the format string.

    The format specifier has the following parts:

    • A leading % sign
    • Flags: Optional one or more flags that modifies the conversion behavior.
      • - : Left justify the result within the field. By default it is right justified.
      • + : The sign of the result is attached to the beginning of the value, even for positive results.
      • Space: If there is no sign, a space is attached to the beginning of the result.
      • # : An alternative form of the conversion is performed.
      • 0 : It is used for integer and floating point number. Leading zeros are used to pad the numbers instead of space.
    • Width: An optional * or integer value used to specify minimum width field.
    • Precision : An optional field consisting of a . followed by * or integer or nothing to specify the precision.
    • Length : An optional length modifier that specifies the size of the argument.
    • Specifier: A conversion format specifier. The available format specifiers are as follows:
      Format Specifier Description
      % Prints %
      c Writes a single character
      s Writes a character string
      d or i Converts a signed integer to decimal representation
      o Converts an unsigned integer to octal representation
      X or x Converts an unsigned integer to hexadecimal representation
      u Converts an unsigned integer to decimal representation
      F or f Converts floating-point number to the decimal representation
      E or e Converts floating-point number to the decimal exponent notation
      A or a Converts floating-point number to the hexadecimal exponent
      G or g Converts floating-point number to either decimal or decimal exponent notation
      n Returns the number of characters written so far by this call to the function. The result is written to the value pointed to by the argument
      p Writes an implementation defined character sequence defining a pointer.

      So the general format of format specifier is: %[flags][width][.precision][length]specifier

  • … : Other additional arguments specifying the data to be printed. They occur in a sequence according to the format specifier.

fprintf() Return value

If successful, the fprintf() function returns number of characters written. On failure it returns a negative value.

Example: How fprintf() function works

#include <cstdio>

int main()
{
    FILE *fp;
    fp = fopen("example.txt","w");
    char lang[5][20] = {"C","C++","Java","Python","PHP"};

    fprintf(fp,"Top 5 programming language\n");
    for (int i=0; i<5; i++)
        fprintf(fp, "%d. %s\n", i+1, lang[i]);

    fclose(fp);
    return 0;
}

When you run the program, a file "example.txt" will be created (if does not exist already) and it contains the following string:

Top 5 programming language
1. C
2. C++
3. Java
4. Python
5. PHP

Also Read:

Did you find this article helpful?

Your builder path starts here. Builders don't just know how to code, they create solutions that matter.

Escape tutorial hell and ship real projects.

Try Programiz PRO
  • Real-World Projects
  • On-Demand Learning
  • AI Mentor
  • Builder Community