C ++ freopen () - C ++ standardna knjižnica

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:
Različiti načini rada s datotekama
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

Zanimljivi članci...