Funcția freopen () din C ++ încearcă să deschidă un fișier nou cu un flux de fișiere care este asociat cu un alt fișier deschis.
Funcția freopen () este definită în fișierul antet.
freopen () prototip
FILE * freopen (const char * nume de fișier, const char * mode, FILE * stream);
Funcția freopen încearcă mai întâi să închidă fișierul deschis folosind fluxul. După închiderea fișierului, acesta încearcă să deschidă numele de fișier specificat de numele fișierului argument (dacă nu este nul) în modul specificat de modul argument. În cele din urmă, asociază fișierul cu fluxul de flux de fișiere.
Dacă numele fișierului este un pointer nul, funcția freopen () încearcă să redeschidă fișierul care este deja asociat cu fluxul.
freopen () Parametri
- nume de fișier: Fișier nou de deschis.
- mod: Mod cu care se deschide fișierul. Diferite tipuri de mod de acces la fișiere sunt după cum urmează:
Mod acces fișiere | Interpretare | Dacă fișierul există | Dacă fișierul nu există |
---|---|---|---|
"r" | Deschide fișierul în modul de citire | Citiți de la început | Eroare |
"w" | Deschide fișierul în modul de scriere | Ștergeți tot conținutul | Creați un fișier nou |
"A" | Deschide fișierul în modul de adăugare | Începeți să scrieți de la sfârșit | Creați un fișier nou |
„r +” | Deschide fișierul în modul de citire și scriere | Citiți de la început | Eroare |
„w +” | Deschide fișierul în modul de citire și scriere | Ștergeți tot conținutul | Creați un fișier nou |
„a +” | Deschide fișierul în modul de citire și scriere | Începeți să scrieți de la sfârșit | Creați un fișier nou |
- stream: fluxul de fișiere căruia i se asociază numele fișierului.
freopen () Valoare returnată
Funcția freopen () returnează:
- fluxul de succes.
- NULL la eșec.
Exemplu: Cum funcționează funcția 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; )
Când rulați programul:
Următoarele vor fi scrise în test1.txt: Acest lucru este scris în test1.txt Următorul va fi scris în test2.txt: Acesta este scris în test2.txt