C ++ freopen () - C ++ - vakiokirjasto

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:
Eri tiedostojen toimintatilat
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

Mielenkiintoisia artikkeleita...