C ++ freopen () - standardní knihovna C ++

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í:
Různé režimy práce se soubory
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

Zajímavé články...