C ++ freopen () - Libreria standard C ++

La funzione freopen () in C ++ tenta di aprire un nuovo file con un flusso di file associato a un altro file aperto.

La funzione freopen () è definita nel file di intestazione.

prototipo freopen ()

 FILE * freopen (const char * filename, const char * mode, FILE * stream);

La funzione freopen tenta prima di chiudere il file aperto utilizzando stream. Dopo che il file è stato chiuso, tenta di aprire il nome file specificato dall'argomento filename (se non è nullo) nella modalità specificata dall'argomento mode. Infine associa il file al flusso del flusso di file.

Se filename è un puntatore nullo, la funzione freopen () tenta di riaprire il file che è già associato al flusso.

parametri freopen ()

  • nomefile: nuovo file da aprire.
  • modalità: modalità con cui aprire il file. I diversi tipi di modalità di accesso ai file sono i seguenti:
Diverse modalità di funzionamento dei file
Modalità di accesso ai file Interpretazione Se il file esiste Se il file non esiste
"r" Apre il file in modalità di lettura Leggi dall'inizio Errore
"w" Apre il file in modalità di scrittura Cancella tutto il contenuto Crea nuovo file
"un" Apre il file in modalità di aggiunta Inizia a scrivere dalla fine Crea nuovo file
"r +" Apre il file in modalità di lettura e scrittura Leggi dall'inizio Errore
"w +" Apre il file in modalità di lettura e scrittura Cancella tutto il contenuto Crea nuovo file
"a +" Apre il file in modalità di lettura e scrittura Inizia a scrivere dalla fine Crea nuovo file
  • stream: il flusso di file a cui associare il nome del file.

freopen () Restituisce il valore

La funzione freopen () restituisce:

  • streaming sul successo.
  • NULL in caso di errore.

Esempio: come funziona la funzione 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; )

Quando esegui il programma:

 Quanto segue sarà scritto in test1.txt: Questo è scritto in test1.txt Quanto segue sarà scritto in test2.txt: Questo è scritto in test2.txt

Articoli interessanti...