De functie freopen () in C ++ probeert een nieuw bestand te openen met een bestandsstroom die is gekoppeld aan een ander geopend bestand.
De freopen () -functie is gedefinieerd in het header-bestand.
freopen () prototype
FILE * freopen (const char * filename, const char * mode, FILE * stream);
De freopen-functie probeert eerst het bestand dat is geopend met stream te sluiten. Nadat het bestand is gesloten, probeert het de bestandsnaam te openen die is gespecificeerd door het argument bestandsnaam (als het niet null is) in de modus gespecificeerd door de argumentmodus. Ten slotte koppelt het het bestand aan de bestandsstroomstroom.
Als de bestandsnaam een null-pointer is, probeert de functie freopen () het bestand dat al aan stream is gekoppeld, opnieuw te openen.
freopen () Parameters
- bestandsnaam: nieuw bestand om te openen.
- modus: modus om het bestand te openen met. De verschillende soorten bestandstoegangsmodi zijn als volgt:
Bestandstoegangsmodus | Interpretatie | Als het bestand bestaat | Als het bestand niet bestaat |
---|---|---|---|
"r" | Opent het bestand in leesmodus | Lees vanaf het begin | Fout |
"w" | Opent het bestand in de schrijfmodus | Wis alle inhoud | Maak een nieuw bestand |
"een" | Opent het bestand in de toevoegmodus | Begin met schrijven vanaf het einde | Maak een nieuw bestand |
"r +" | Opent het bestand in lees- en schrijfmodus | Lees vanaf het begin | Fout |
"w +" | Opent het bestand in lees- en schrijfmodus | Wis alle inhoud | Maak een nieuw bestand |
"a +" | Opent het bestand in lees- en schrijfmodus | Begin met schrijven vanaf het einde | Maak een nieuw bestand |
- stream: De bestandsstream waaraan de bestandsnaam moet worden gekoppeld.
freopen () Retourwaarde
De functie freopen () retourneert:
- stream op succes.
- NULL bij een fout.
Voorbeeld: hoe werkt de functie 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; )
Wanneer u het programma uitvoert:
Het volgende wordt naar test1.txt geschreven: Dit wordt naar test1.txt geschreven Het volgende wordt naar test2.txt geschreven: Dit wordt naar test2.txt geschreven