English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base en langage C

Contrôle de flux en langage C

Fonctions du langage C

Tableaux en langage C

Pointeurs en langage C

Chaînes de caractères en langage C

Structure de langage C

Fichier en langage C

Autres C

Manuel de référence en langage C

Utilisation et exemple de la fonction de bibliothèque C freopen()

Bibliothèque standard C - <stdio.h>

Fonction de bibliothèque C FILE *freopen(const char *filename, const char *mode, FILE *stream) Affecter un nouveau nom de fichier filename Avec le flux ouvert donné flux Lier, fermer le fichier ancien dans le flux.

Déclaration

Voici la déclaration de la fonction freopen().

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

Paramètres

  • filename -- C'est une chaîne de caractères C qui contient le nom du fichier à ouvrir.
  • mode -- C'est une chaîne de caractères C qui contient le mode d'accès au fichier, le mode est le suivant :
ModeDescription
"r" Ouvrir un fichier pour lecture. Le fichier doit exister.
"w" Créer un fichier vide pour écriture. Si le nom du fichier est identique à celui d'un fichier existant, le contenu de ce fichier sera supprimé et le fichier sera considéré comme un fichier vide nouveau.
"a" Ajouter à un fichier. Les opérations d'écriture ajoutent des données à la fin du fichier. Si le fichier n'existe pas, il est créé.
"r+" Ouvrir un fichier pour mise à jour, lecture et écriture. Le fichier doit exister.
"w+" Créer un fichier vide pour lecture et écriture.
"a+" Ouvrir un fichier pour lecture et ajout.
  • flux -- C'est un pointeur vers l'objet FILE, qui identifie le flux à réouvrir.

Valeur de retour

Si le fichier est ouvert avec succès, la fonction retourne un pointeur vers l'objet utilisé pour identifier le flux. Sinon, elle retourne un pointeur NULL.

Exemple en ligne

L'exemple suivant montre l'utilisation de la fonction freopen().

#include <stdio.h>
int main ()
{
   FILE *fp;
   printf("Ce texte est redirigé vers stdout\n");
   fp = freopen("file.txt", "w+", stdout);
   printf("Ce texte est redirigé vers file.txt\n");
   fclose(fp);
   return(0);
}

Compilons et exécutons le programme suivant, ce qui enverra les lignes suivantes à la sortie standard STDOUT, car nous n'avons pas ouvert la sortie standard au départ :

Ce texte est redirigé vers stdout

En appelant freopen() Ensuite, il associera la sortie standard STDOUT au fichier file.txtTous les éléments écrits sur la sortie standard STDOUT seront également écrits dans file.txt, donc le fichier file.txt contiendra ce qui suit :

Ce texte est redirigé vers file.txt

Maintenant, utilisons le programme suivant pour afficher le contenu du fichier ci-dessus :

#include <stdio.h>
int main ()
{
   FILE *fp;
   int c;
   fp = fopen("file.txt","r");
   while(1)
   {
      c = fgetc(fp);
      if( feof(fp) )
      {
          break ;
      }
      printf("%c", c);
   }
   fclose(fp);
   return(0);
}

Bibliothèque standard C - <stdio.h>