Funkce freopen () v C ++ se pokusí otevřít nový soubor s proudem souboru, který je přidružen k jinému otevřenému souboru.
Funkce freopen () je definována v hlavičkovém souboru.
prototyp freopen ()
FILE * freopen (const char * název souboru, const char * režim, FILE * stream);
Funkce freopen se nejprve pokusí zavřít soubor otevřený pomocí streamu. Po uzavření souboru se pokusí otevřít název souboru určený argumentem název souboru (pokud není null) v režimu určeném režimem argumentu. Nakonec přidruží soubor k proudu proudu souboru.
Pokud je název souboru nulový ukazatel, funkce freopen () se pokusí znovu otevřít soubor, který je již přidružen k proudu.
freopen () parametry
- název souboru: Nový soubor k otevření.
- režim: Režim pro otevření souboru s. Různé typy režimu přístupu k souborům jsou následující:
Režim přístupu k souborům | Výklad | Pokud soubor existuje | Pokud soubor neexistuje |
---|---|---|---|
„r“ | Otevře soubor v režimu čtení | Číst od začátku | Chyba |
"w" | Otevře soubor v režimu zápisu | Vymažte veškerý obsah | Vytvořit nový soubor |
"A" | Otevře soubor v režimu připojení | Začněte psát od konce | Vytvořit nový soubor |
„r +“ | Otevře soubor v režimu čtení a zápisu | Číst od začátku | Chyba |
„w +“ | Otevře soubor v režimu čtení a zápisu | Vymažte veškerý obsah | Vytvořit nový soubor |
„a +“ | Otevře soubor v režimu čtení a zápisu | Začněte psát od konce | Vytvořit nový soubor |
- stream: Datový proud souboru, ke kterému chcete přiřadit název souboru.
freopen () Vrátí hodnotu
Funkce freopen () vrací:
- streamujte na úspěch.
- NULL při selhání.
Příklad: Jak funguje funkce 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; )
Při spuštění programu:
Následující bude zapsán do test1.txt: Toto bude zapsáno do test1.txt Následující bude zapsáno do test2.txt: Toto bude zapsáno do test2.txt