Freopen () -funktionen i C ++ forsøger at åbne en ny fil med en filstrøm, der er knyttet til en anden åbnet fil.
Funktionen freopen () er defineret i headerfilen.
freopen () prototype
FIL * freopen (const char * filnavn, const char * mode, FILE * stream);
Freopen-funktionen forsøger først at lukke den fil, der åbnes ved hjælp af stream. Når filen er lukket, forsøger den at åbne det filnavn, der er angivet af argumentets filnavn (hvis det ikke er nul) i den tilstand, der er angivet af argumenttilstanden. Endelig knytter den filen til filstrømmen.
Hvis filnavnet er en nul pointer, forsøger freopen () -funktionen at genåbne den fil, der allerede er tilknyttet stream.
freopen () Parametre
- filnavn: Ny fil, der skal åbnes.
- tilstand: Tilstand at åbne filen med. Forskellige typer filadgangstilstand er som følger:
Filadgangstilstand | Fortolkning | Hvis der findes en fil | Hvis filen ikke findes |
---|---|---|---|
"r" | Åbner filen i læsetilstand | Læs fra start | Fejl |
"w" | Åbner filen i skrivetilstand | Slet alt indholdet | Opret ny fil |
"en" | Åbner filen i tilføjelsestilstand | Begynd at skrive fra slutningen | Opret ny fil |
"r +" | Åbner filen i læse- og skrivetilstand | Læs fra start | Fejl |
"w +" | Åbner filen i læse- og skrivetilstand | Slet alt indholdet | Opret ny fil |
"a +" | Åbner filen i læse- og skrivetilstand | Begynd at skrive fra slutningen | Opret ny fil |
- stream: Filstrømmen, som filnavnet knyttes til.
freopen () Returværdi
Funktionen freopen () returnerer:
- stream på succes.
- NULL ved fejl.
Eksempel: Hvordan fungerer freopen () -funktionen?
#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; )
Når du kører programmet:
Følgende skrives til test1.txt: Dette skrives til test1.txt Følgende skrives til test2.txt: Dette skrives til test2.txt