Funkcija freopen () v C ++ poskuša odpreti novo datoteko s tokom datotek, ki je povezan z drugo odprto datoteko.
Funkcija freopen () je definirana v datoteki glave.
prototip freopen ()
FILE * freopen (const char * ime datoteke, način const char *, tok FILE *);
Funkcija freopen najprej poskuša zapreti datoteko, odprto s pomočjo toka. Ko je datoteka zaprta, poskuša odpreti ime datoteke, določeno z argumentom ime datoteke (če ni nič), v načinu, ki ga določa način argumenta. Končno datoteko poveže s tokom toka datotek.
Če je ime datoteke ničelni kazalec, funkcija freopen () poskuša znova odpreti datoteko, ki je že povezana s tokom.
parametri freopen ()
- ime datoteke: Nova datoteka, ki jo želite odpreti.
- način: način, s katerim želite odpreti datoteko. Različne vrste načina dostopa do datotek so naslednje:
Način dostopa do datotek | Tolmačenje | Če datoteka obstaja | Če datoteka ne obstaja |
---|---|---|---|
"r" | Datoteko odpre v načinu branja | Preberite od začetka | Napaka |
"w" | Datoteko odpre v načinu pisanja | Izbriši vso vsebino | Ustvari novo datoteko |
"a" | Datoteko odpre v načinu dodajanja | Začnite pisati od konca | Ustvari novo datoteko |
"r +" | Datoteko odpre v načinu branja in pisanja | Preberite od začetka | Napaka |
"w +" | Datoteko odpre v načinu branja in pisanja | Izbriši vso vsebino | Ustvari novo datoteko |
"a +" | Datoteko odpre v načinu branja in pisanja | Začnite pisati od konca | Ustvari novo datoteko |
- tok: tok datoteke, ki mu želite pridružiti ime datoteke.
freopen () Vrnjena vrednost
Funkcija freopen () vrne:
- tok uspeha.
- NULL ob okvari.
Primer: Kako deluje 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; )
Ko zaženete program:
V test1.txt bo zapisano naslednje: To bo zapisano v test1.txt V test2.txt bo zapisano naslednje: To bo zapisano v test2.txt