Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

fprintf - Formatierte Ausgabe in eine Datei

&pagelevel(4)&pagelevel

Definition

#include <stdio.h>

int fprintf(FILE *dz, const char *format, argumentenliste);

fprintf bereitet Daten (Zeichen, Zeichenketten, numerische Werte) gemäß den Angaben in der Zeichenkette format auf und schreibt sie in die Datei mit Dateizeiger dz.

fprintf arbeitet wie printf, außer dass die aufbereiteten Daten in eine Datei und nicht in die Standardausgabe geschrieben werden.

Parameter

FILE *dz

Dateizeiger der Ausgabedatei.

const char *format

Formatzeichenkette wie bei printf mit KR- oder ANSI-Funktionalität (Beschreibung siehe dort).

argumentenliste

Variablen oder Konstanten, deren Werte gemäß den Angaben in den Formatanweisungen für die Ausgabe umgewandelt und formatiert werden sollen. Wenn die Anzahl der Formatanweisungen nicht mit der Anzahl der Argumente übereinstimmt, gilt Folgendes: Gibt es mehr Argumente, werden die überzähligen ignoriert. Gibt es weniger Argumente, führt dies zu undefinierten Ergebnissen.

Returnwert

Anzahl der ausgegebenen Zeichen bei Erfolg.


negativer Wert bei Fehler.

Hinweise

Bei der Umwandlung von Gleitkommazahlen rundet fprintf auf die angegebene Genauigkeit.

fprintf nimmt keine Konvertierung von einem Datentyp in einen anderen vor. Soll ein Wert nicht entsprechend seinem Typ ausgegeben werden, muss er explizit konvertiert werden (z.B. mit dem cast-Operator).

Die Zeichen werden nicht sofort in die externe Datei geschrieben, sondern in einem C-internen Puffer zwischengespeichert (siehe Abschnitt "Pufferung“ (Grundbegriffe)).

Maximale Anzahl der auszugebenden Zeichen: Bei KR-Funktionalität (nur bei C/C++ Versionen kleiner V3.0 vorhanden) können pro fprintf-Aufruf maximal 1400 Zeichen ausgegeben werden, bei ANSI-Funktionalität maximal 1400 Zeichen pro Konversionselement (z.B. %s).

Versuche, nicht initialisierte Variablen oder Variablen nicht entsprechend ihrem Datentyp auszugeben, können zu undefinierten Ergebnissen führen.

Das Verhalten ist undefiniert, wenn in einer Formatanweisung dem Prozentzeichen (%) ein nicht definiertes Formatierungs- bzw. Umwandlungszeichen folgt.

Bei Textdateien mit der Zugriffsart SAM und variabler Satzlänge, für die zusätzlich eine maximale Satzlänge angegeben ist, gilt: Wenn bei fopen die Angabe split=no gemacht wurde, werden Sätze, die länger als die maximale Satzlänge sind, beim Schreiben auf die maximale Satzlänge gekürzt. Standardmäßig oder mit der Angabe split=yes werden diese Sätze in mehrere Sätze aufgeteilt. Hat ein Satz genau die maximale Satzlänge, wird nach diesem ein Satz der Länge Null geschrieben.

Beispiel

#include <stdio.h>
#include <stdlib.h>
int main(void) 
{ 
    FILE *fp; 
    char c, name[40]; 
    int i; 
    char *string;
    double d; 
    printf("Name der Ausgabedatei: \n"); 
    gets(name); 
    if((fp = fopen(name,"w")) == NULL)
    {
       printf("Can't open %s\n", name); 
       exit(1); 
    } 
    c = 'A'; 
    i = 999; 
    string = "Dies ist ein String."; 
    d = 123.456; 
    fprintf(fp, "%c %d %s %f\n", c, i, string, d); 
    fclose(fp); 
    puts("Richtige Ausgabe in Datei:A 999 Dies ist ein String. 123.456000");
    return 0;
}

Siehe auch

printf, sprintf, snprintf, putc, putchar, puts, scanf, fscanf