C ++ freopen () - Bibliothèque standard C ++

La fonction freopen () en C ++ tente d'ouvrir un nouveau fichier avec un flux de fichiers associé à un autre fichier ouvert.

La fonction freopen () est définie dans le fichier d'en-tête.

prototype freopen ()

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

La fonction freopen tente d'abord de fermer le fichier ouvert à l'aide de stream. Une fois le fichier fermé, il tente d'ouvrir le nom de fichier spécifié par l'argument filename (s'il n'est pas nul) dans le mode spécifié par le mode argument. Enfin, il associe le fichier au flux de fichiers.

Si filename est un pointeur nul, la fonction freopen () tente de rouvrir le fichier qui est déjà associé au flux.

Paramètres freopen ()

  • filename: Nouveau fichier à ouvrir.
  • mode: Mode pour ouvrir le fichier avec. Les différents types de mode d'accès aux fichiers sont les suivants:
Différents modes de fonctionnement des fichiers
Mode d'accès aux fichiers Interprétation Si le fichier existe Si le fichier n'existe pas
"r" Ouvre le fichier en mode lecture Lire depuis le début Erreur
"w" Ouvre le fichier en mode écriture Effacer tout le contenu Créer un nouveau fichier
"une" Ouvre le fichier en mode ajout Commencez à écrire à partir de la fin Créer un nouveau fichier
"r +" Ouvre le fichier en mode lecture et écriture Lire depuis le début Erreur
"w +" Ouvre le fichier en mode lecture et écriture Effacer tout le contenu Créer un nouveau fichier
"un +" Ouvre le fichier en mode lecture et écriture Commencez à écrire à partir de la fin Créer un nouveau fichier
  • stream: Le flux de fichiers auquel associer le nom de fichier.

freopen () Valeur de retour

La fonction freopen () renvoie:

  • flux sur le succès.
  • NULL en cas d'échec.

Exemple: Comment fonctionne la fonction 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; )

Lorsque vous exécutez le programme:

 Ce qui suit sera écrit dans test1.txt: Ceci est écrit dans test1.txt Ce qui suit sera écrit dans test2.txt: Ceci est écrit dans test2.txt

Articles intéressants...