Freopen () -funktionen i C ++ försöker öppna en ny fil med en filström som är associerad med en annan öppnad fil.
Funktionen freopen () definieras i rubrikfilen.
freopen () prototyp
FIL * freopen (const char * filnamn, const char * läge, FILE * stream);
Freopen-funktionen försöker först stänga filen som öppnas med ström. När filen har stängts försöker den öppna det filnamn som anges av argumentets filnamn (om det inte är null) i det läge som anges av argumentläget. Slutligen associerar den filen med filströmmen.
Om filnamnet är en nollpekare försöker funktionen freopen () att öppna filen som redan är kopplad till strömmen.
freopen () Parametrar
- filnamn: Ny fil att öppna.
- läge: Läge för att öppna filen med. Olika typer av filåtkomstläge är följande:
Filåtkomstläge | Tolkning | Om filen finns | Om filen inte finns |
---|---|---|---|
"r" | Öppnar filen i läsläge | Läs från början | Fel |
"w" | Öppnar filen i skrivläge | Radera allt innehåll | Skapa ny fil |
"a" | Öppnar filen i append-läge | Börja skriva från slutet | Skapa ny fil |
"r +" | Öppnar filen i läs- och skrivläge | Läs från början | Fel |
"w +" | Öppnar filen i läs- och skrivläge | Radera allt innehåll | Skapa ny fil |
"a +" | Öppnar filen i läs- och skrivläge | Börja skriva från slutet | Skapa ny fil |
- stream: Filströmmen som filnamnet ska kopplas till.
freopen () Returvärde
Funktionen freopen () returnerar:
- strömma om framgång.
- NULL vid misslyckande.
Exempel: Hur fungerar 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; )
När du kör programmet:
Följande skrivs till test1.txt: Detta skrivs till test1.txt Följande skrivs till test2.txt: Detta skrivs till test2.txt