Funkcia freopen () v C ++ sa pokúsi otvoriť nový súbor s prúdom súboru, ktorý je spojený s iným otvoreným súborom.
Funkcia freopen () je definovaná v hlavičkovom súbore.
prototyp freopen ()
FILE * freopen (const char * názov súboru, const char * režim, FILE * stream);
Funkcia freopen sa najskôr pokúsi zavrieť súbor otvorený pomocou streamu. Po uzavretí súboru sa pokúsi otvoriť názov súboru určený argumentom názov súboru (ak nemá hodnotu null) v režime určenom režimom argumentov. Nakoniec priradí súbor k toku prúdu súborov.
Ak je názov súboru nulový ukazovateľ, funkcia freopen () sa pokúsi znova otvoriť súbor, ktorý je už priradený k prúdu.
parametre freopen ()
- názov súboru: Nový súbor na otvorenie.
- režim: Režim na otvorenie súboru s. Medzi rôzne typy režimu prístupu k súborom patria:
Režim prístupu k súborom | Výklad | Ak súbor existuje | Ak súbor neexistuje |
---|---|---|---|
„r“ | Otvorí súbor v režime čítania | Čítajte od začiatku | Chyba |
„w“ | Otvorí súbor v režime zápisu | Vymažte všetok obsah | Vytvoriť nový súbor |
„a“ | Otvorí súbor v režime pridania | Začnite písať od konca | Vytvoriť nový súbor |
„r +“ | Otvorí súbor v režime čítania a zápisu | Čítajte od začiatku | Chyba |
„w +“ | Otvorí súbor v režime čítania a zápisu | Vymažte všetok obsah | Vytvoriť nový súbor |
„a +“ | Otvorí súbor v režime čítania a zápisu | Začnite písať od konca | Vytvoriť nový súbor |
- stream: Stream súborov, ku ktorému sa má priradiť názov súboru.
freopen () Návratová hodnota
Vráti funkcia freopen ():
- prúd na úspech.
- NULL pri zlyhaní.
Príklad: Ako funguje funkcia 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; )
Po spustení programu:
Nasledujúce sa zapíše do súboru test1.txt: Toto sa zapíše do súboru test1.txt Nasledujúce sa zapíše do súboru test2.txt: Toto sa zapíše do súboru test2.txt