fprintf()

Writes to a file.

Synopsis

int fprintf(file file, string format, [,<type1> var1 [,<type2> var2...]]);

Parameters

Parameter Description
file File to be written. Use the constants stdin, stdout, stderr (see Reference Tables).
format output format
var1, var2, ... arguments

Return value

In the event of errors, the function returns -1 or EOF otherwise, the number of written characters

Error

If incorrect data types are used or if a file is not open.

Description

Writes outputs to the file "file"; under the specified format. The format string format contains two types of elements. Usual characters that are copied to the output and (optional) conversion specifications that define the conversion and output of the next-following (optional) argument var1, var2 and so on of fprintf(). The function fprintf() returns the number of written characters or in the event of an error, a negative number. Each conversion specification starts with the character % and ends with a conversion character. The following flags can be placed in between:

Flags No or several flags in any order.
- The converted argument is aligned left-justified. If no minus sign has been specified, the alignment will be right-justified.
space Similar to the flag + (output with positive sign if the value has been signed). A blank space is outputted instead of a plus sign. If the flags space and + are specified together, the flag + has the higher priority.
# Output is in an alternative format. A detailed description of the individual conversion characters follows in the next section.
  • width: The indication of the accuracy is optional. The exact meaning depends on the type of the conversion performed.

  • prec: Indication of the accuracy is optional. The accuracy indicates the number of digits that are output after the decimal point. The accuracy is entered after the decimal point. If the decimal point is used without specifying the accuracy, no places after the decimal point will be output. The specification of the accuracy only applies to the conversionse,E, f,gandG.

  • format: A letter that defines the type of conversion.

Description Meaning of width Meaning of the flag #
d The argument is represented as a decimal number

Minimum number of represented characters. Otherwise filled with blank spaces.

The default value is 1.

The output of the number zero with a width of zero results in no character!

Not defined.
o The argument is represented as an octal number without leading zeros. seed Places a 0 in front of the result is greater than zero.
u The argument is displayed as an unsigned decimal number. seed Not defined.
x The argument is represented as a hexadecimal number (without leading 0x). The letters abcdef are used. seed Places a 0 in front of the result is greater than zero.
X Like x. But the letters ABCDEF are used. see d Places an 0 in front of the result is greater than zero.
f

The argument float/double is represented as a decimal number.

[ - ] ddd.ddd is the default:

Minimum number of represented characters.

May be extended for the required accuracy by specifying a decimal point and places after the decimal point.

When a decimal point is output, at least one character is output before the decimal point.

Output of a decimal point even if no spaces after the decimal point follow.
e

The argument float/double is represented as an exponent number in the format

[ - ] d.ddde dd

The exponent always contains at least two places. If the value is zero, the exponent is zero.

see f see f
E Similar to e. Instead of e,E is used. see f see f
g Similar to f or e, but dependent on the value. The conversion type e is only used when the exponent is less than -4 or greater than the accuracy. see f see f
G Similar to g. An E is output instead of an e. see f see f
s The argument is a string. Individual characters are output from the string until either a null character ("/0") has been reached or as many characters as required for accuracy. Minimum number of represented characters. Not defined.

Example

The following example writes three values to a temporary file and then immediately reads them out again.

main()
{
  file f;
  int i;
  dyn_float value;
  value[1]=12.123;
  value[2]=8.0;
  value[3]=3.1;
  f=fopen("C:/TEMP/tfile.TXT","w+");
  //opens a new file for writing and reading
  for (i=1;i<=3;i++) fprintf(f,"%5.3f\n",value[i]);
  //write "float" values
  rewind(f); // Back to the beginning
  for (i=1;i<=3;i++)
  {
    fscanf (f,"%f",value[i]); // read as float again
    DebugN(value[i]); // output for checking
  }
  fclose(f);
}

Assignment

File functions

Availability

CTRL