Lecture et écriture par lignes sur fichier next up previous contents index
Suivant: E/S formattées sur fichiers Début: Les entrées-sorties Précédent: Lecture et écriture par


Paragraphes

Lecture et écriture par lignes sur fichier

lecture par ligne : fgets

 

Utilisation

fgets (chaîne , taille , flot-de-données)

Sémantique des paramètres

-
chaîne est de type pointeur vers char et doit pointer vers un tableau de caractères.
-
taille est la taille en octets du tableau de caractères pointé par chaîne.
-
flot-de-données est de type pointeur vers FILE. Il pointe vers le fichier à partir duquel se fait la lecture.

Valeur rendue

La fonction fgets rend le pointeur chaîne cas de lecture sans erreur, ou NULL dans le cas de fin de fichier ou d'erreur.  





Attention
Sur fin de fichier ou erreur, fgets rend NULL et non pas EOF. Grrr ...


Description

La fonction fgets lit les caractères du fichier et les range dans le tableau pointé pa chaîne jusqu'à rencontre d'un line-feed (qui est mis dans le tableau), ou rencontre de fin de fichier, ou jusqu'à ce qu'il ne reste plus qu'un seul caractère libre dans le tableau. fgets complète alors les caractères lus par un caractère null.

Utilisation typique

#include <stdio.h>
#define LONG ...
char ligne[LONG];
FILE *fi;

while (fgets(ligne,LONG,fi) != NULL)   /*  stop sur fin de fichier ou erreur  */
   {
   ...   /*   utilisation de ligne   */
   }

lecture par ligne : gets

 

Utilisation

gets (chaîne)

Sémantique des paramètres

-
chaîne est de type pointeur vers char et doit pointer vers un tableau de caractères.

Valeur rendue

fgets rend un pointeur vers le tableau de caractères en cas de lecture sans erreur, ou NULL dans le cas de fin de fichier ou d'erreur.

Description

La fonction gets est un fgets sur stdin. Malheureusement, l'interface de gets est une catastrophe : il n'a pas le paramètre taille qui donne la taille du tableau pointé par chaîne. Ceci interdit donc à gets toute vérification pour ne pas déborder du tableau.
Pour cette raison l'usage de gets est très fortement déconseillé [*]

écriture par chaîne : fputs

 

Utilisation

fputs (chaîne , flot-de-données)

Sémantique des paramètres

-
chaîne est de type pointeur vers char. Pointe vers un tableau de caractères contenant une chaîne se terminant par un null.
-
flot-de-données est de type pointeur vers FILE. Il pointe vers le fichier sur lequel se fait l'écriture.  

Valeur rendue

La fonction fputs rend une valeur non négative si l'écriture se passe sans erreur, et EOF en cas d'erreur.  

Description

fputs écrit sur le fichier le contenu du tableau dont la fin est indiquée par un caractère null. Le tableau de caractères peut contenir ou non un line-feed. fputs peut donc servir indifféremment à écrire une ligne ou une chaîne quelconque.

Utilisation typique

#include <stdio.h>
#define LONG ...
char ligne[LONG];
FILE *fo;

fputs(ligne,fo);

écriture par chaîne : puts

 

Utilisation

puts (chaîne)

Sémantique des paramètres

-
chaîne est de type pointeur vers char. Pointe vers un tableau de caractères contenant une chaîne se terminant par un null.

Valeur rendue

La fonction fputs rend une valeur non négative si l'écriture se passe sans erreur, et EOF en cas d'erreur.

Description

La fonction puts est un fputs sur stdout. Elle n'est pas entaché du même vice rédhibitoire que gets, on peut donc l'utiliser.


next up previous contents index
Suivant: E/S formattées sur fichiers Début: Les entrées-sorties Précédent: Lecture et écriture par

30/9/1997