Fonction de bibliothèque C - fgets ()

La description

La fonction de bibliothèque C char *fgets(char *str, int n, FILE *stream) lit une ligne du flux spécifié et la stocke dans la chaîne pointée par str. Il s'arrête quand soit(n-1) les caractères sont lus, le caractère de nouvelle ligne est lu ou la fin du fichier est atteinte, selon la première éventualité.

Déclaration

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

char *fgets(char *str, int n, FILE *stream)

Paramètres

  • str - Il s'agit du pointeur vers un tableau de caractères où la chaîne lue est stockée.

  • n- C'est le nombre maximum de caractères à lire (y compris le caractère nul final). Habituellement, la longueur du tableau passée en tant que str est utilisée.

  • stream - Il s'agit du pointeur vers un objet FILE qui identifie le flux à partir duquel les caractères sont lus.

Valeur de retour

En cas de succès, la fonction renvoie le même paramètre str. Si la fin de fichier est rencontrée et qu'aucun caractère n'a été lu, le contenu de str reste inchangé et un pointeur nul est renvoyé.

Si une erreur se produit, un pointeur nul est renvoyé.

Exemple

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

#include <stdio.h>

int main () {
   FILE *fp;
   char str[60];

   /* opening file for reading */
   fp = fopen("file.txt" , "r");
   if(fp == NULL) {
      perror("Error opening file");
      return(-1);
   }
   if( fgets (str, 60, fp)!=NULL ) {
      /* writing content to stdout */
      puts(str);
   }
   fclose(fp);
   
   return(0);
}

Supposons que nous ayons un fichier texte file.txt, qui a le contenu suivant. Ce fichier sera utilisé comme entrée pour notre programme d'exemple -

We are in 2012

Maintenant, compilons et exécutons le programme ci-dessus qui produira le résultat suivant -

We are in 2012