Die Funktion freopen () in C ++ versucht, eine neue Datei mit einem Dateistream zu öffnen, der einer anderen geöffneten Datei zugeordnet ist.
Die Funktion freopen () ist in der Header-Datei definiert.
freopen () Prototyp
FILE * freopen (const char * Dateiname, const char * Modus, FILE * Stream);
Die Freopen-Funktion versucht zunächst, die mit Stream geöffnete Datei zu schließen. Nachdem die Datei geschlossen wurde, wird versucht, den durch das Argument Dateiname angegebenen Dateinamen (falls er nicht null ist) in dem durch den Argumentmodus angegebenen Modus zu öffnen. Schließlich ordnet es die Datei dem Dateistream-Stream zu.
Wenn der Dateiname ein Nullzeiger ist, versucht die Funktion freopen (), die Datei, die bereits dem Stream zugeordnet ist, erneut zu öffnen.
freopen () Parameter
- Dateiname: Neue zu öffnende Datei.
- mode: Modus zum Öffnen der Datei mit. Es gibt verschiedene Arten des Dateizugriffsmodus:
Dateizugriffsmodus | Interpretation | Wenn eine Datei vorhanden ist | Wenn die Datei nicht vorhanden ist |
---|---|---|---|
"r" | Öffnet die Datei im Lesemodus | Von Anfang an lesen | Error |
"w" | Öffnet die Datei im Schreibmodus | Löschen Sie den gesamten Inhalt | Neue Datei erstellen |
"ein" | Öffnet die Datei im Anhänge-Modus | Beginnen Sie am Ende zu schreiben | Neue Datei erstellen |
"r +" | Öffnet die Datei im Lese- und Schreibmodus | Von Anfang an lesen | Error |
"w +" | Öffnet die Datei im Lese- und Schreibmodus | Löschen Sie den gesamten Inhalt | Neue Datei erstellen |
"a +" | Öffnet die Datei im Lese- und Schreibmodus | Beginnen Sie am Ende zu schreiben | Neue Datei erstellen |
- stream: Der Dateistream, dem der Dateiname zugeordnet werden soll.
freopen () Rückgabewert
Die Funktion freopen () gibt Folgendes zurück:
- Stream auf Erfolg.
- NULL bei Fehler.
Beispiel: Wie funktioniert die Funktion freopen ()?
#include #include int main() ( FILE* fp = fopen("test1.txt","w"); fprintf(fp,"%s","This is written to test1.txt"); if (freopen("test2.txt","w",fp)) fprintf(fp,"%s","This is written to test2.txt"); else ( printf("freopen failed"); exit(1); ) fclose(fp); return 0; )
Wenn Sie das Programm ausführen:
Folgendes wird in test1.txt geschrieben: Dies wird in test1.txt geschrieben. Folgendes wird in test2.txt geschrieben: Dies wird in test2.txt geschrieben