Funkcija freopen () u C ++-u pokušava otvoriti novu datoteku s protokom datoteka koji je povezan s drugom otvorenom datotekom.
Funkcija freopen () definirana je u zaglavnoj datoteci.
prototip freopen ()
FILE * freopen (const char * naziv datoteke, const char * način, FILE * stream);
Funkcija freopen prvo pokušava zatvoriti datoteku otvorenu pomoću streama. Nakon što se datoteka zatvori, pokušava otvoriti naziv datoteke naveden s imenom datoteke argumenta (ako nije null) u načinu navedenom u načinu argumenta. Konačno, pridružuje datoteku streamu datoteka.
Ako je naziv datoteke null pokazivač, funkcija freopen () pokušava ponovno otvoriti datoteku koja je već pridružena streamu.
parametri freopen ()
- naziv datoteke: Nova datoteka za otvaranje.
- način: Način otvaranja datoteke. Različite vrste načina pristupa datotekama su kako slijedi:
Način pristupa datotekama | Tumačenje | Ako datoteka postoji | Ako datoteka ne postoji |
---|---|---|---|
"r" | Otvara datoteku u načinu čitanja | Čitajte od početka | Pogreška |
"w" | Otvara datoteku u načinu pisanja | Izbrišite sav sadržaj | Stvori novu datoteku |
"a" | Otvara datoteku u načinu dodavanja | Počnite pisati od kraja | Stvori novu datoteku |
"r +" | Otvara datoteku u načinu čitanja i pisanja | Čitajte od početka | Pogreška |
"w +" | Otvara datoteku u načinu čitanja i pisanja | Izbrišite sav sadržaj | Stvori novu datoteku |
"a +" | Otvara datoteku u načinu čitanja i pisanja | Počnite pisati od kraja | Stvori novu datoteku |
- stream: tok datoteke kojem se pridružuje naziv datoteke.
freopen () Povratna vrijednost
Funkcija freopen () vraća:
- tok na uspjeh.
- NULL u slučaju neuspjeha.
Primjer: Kako funkcionira funkcija 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; )
Kada pokrenete program:
Sljedeće će biti napisano na test1.txt: Ovo je napisano na test1.txt Sljedeće će biti napisano na test2.txt: Ovo je napisano na test2.txt