C ++: n freopen () -toiminto yrittää avata uuden tiedoston tiedostovirralla, joka liittyy toiseen avattuun tiedostoon.
Freopen () -toiminto määritetään otsikkotiedostossa.
freopen ()-prototyyppi
FILE * freopen (const char * tiedostonimi, const char * -tila, FILE * stream);
Freopen-toiminto yrittää ensin sulkea avatun tiedoston striimin avulla. Kun tiedosto on suljettu, se yrittää avata argumentin tiedostonimen määrittämän tiedostonimen (jos se ei ole nolla) argumenttitilan määrittämässä tilassa. Lopuksi se yhdistää tiedoston tiedostovirtaan.
Jos tiedostonimi on tyhjä osoitin, freopen () -toiminto yrittää avata tiedoston, joka on jo liitetty streamiin.
freopen () -parametrit
- tiedostonimi: Uusi avattava tiedosto.
- mode: tila, jolla tiedosto avataan. Erilaiset tiedostojen käyttötilat ovat seuraavat:
Tiedostojen käyttötila | Tulkinta | Jos tiedosto on olemassa | Jos tiedostoa ei ole |
---|---|---|---|
"r" | Avaa tiedoston lukutilassa | Lue alusta alkaen | Virhe |
"w" | Avaa tiedoston kirjoitustilassa | Poista kaikki sisältö | Luo uusi tiedosto |
"a" | Avaa tiedoston liitetilassa | Aloita kirjoittaminen lopusta | Luo uusi tiedosto |
"r +" | Avaa tiedoston luku- ja kirjoitustilassa | Lue alusta alkaen | Virhe |
"w +" | Avaa tiedoston luku- ja kirjoitustilassa | Poista kaikki sisältö | Luo uusi tiedosto |
"a +" | Avaa tiedoston luku- ja kirjoitustilassa | Aloita kirjoittaminen lopusta | Luo uusi tiedosto |
- stream: Tiedostovirta, johon tiedostonimi liitetään.
freopen () Palautusarvo
Freopen () -funktio palauttaa:
- suoratoista menestystä.
- NULL epäonnistumisesta.
Esimerkki: Kuinka freopen () -toiminto toimii?
#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; )
Kun suoritat ohjelmaa:
Seuraava kirjoitetaan osoitteeseen test1.txt: Tämä kirjoitetaan tiedostoon test1.txt Seuraava teksti kirjoitetaan osoitteeseen test2.txt: Tämä kirjoitetaan tiedostoon test2.txt