 
 
 
 
 
 
 
 
 Next: Lecture et écriture par
 Up: Les entrées-sorties
 Previous: Ouverture et fermeture de
Sous-sections
 
 Next: Lecture et écriture par
 Up: Les entrées-sorties
 Previous: Ouverture et fermeture de
Sous-sections
 
 fgetc (flot-de-données)
- -
- flot-de-données est de type pointeur vers FILE.
Il pointe vers le fichier à partir duquel se fait la lecture.
La fonction 
fgetc lit un caractère du fichier 
flot-de-données.
Si la lecture se fait sans erreur et sans rencontre de la fin de fichier,
fgetc rend le caractère lu.
Si il y a erreur d'entrée-sortie, ou rencontre de fin de fichier, 
fgetc
rend la valeur 
EOF.
 
Pour cette raison, le type de la valeur rendue est 
int et non pas
char.
#include <stdio.h>
int c;
FILE *fi;
while ((c = fgetc(fi)) != EOF)
   {
   ...   /*   utilisation de c   */
   }
 
Il existe une fonction 
getc qui est rigoureusement identique à
fgetc (même interface, même sémantique), sauf que 
getc est
implémenté comme une macro et non comme une vraie fonction C.
La différence est que 
getc peut évaluer plusieurs fois son paramètre
flot-de-données, ce qui lui interdit d'être une expression
contenant des effets de bord.
Exemple :
int i;
FILE * TAB_FILE[10];
c = getc(TAB_FILE[i++]);   /*   Arrgh..., effet de bord !   */
 
 getchar ( )
La fonction 
getchar est rigoureusement équivalente à 
getc(stdin).
C'est également une macro, mais comme elle n'admet pas de paramètre,
elle n'a pas le (petit) inconvénient de 
getc.
 
 fputc (carac , flot-de-données)
- -
- carac est de type int, c'est le caractère à écrire.
- -
- flot-de-données est de type pointeur vers FILE.
Il pointe vers le fichier sur lequel se fait l'écriture.
La fonction 
fputc écrit le caractère 
carac dans le fichier 
flot-de-données.
La fonction 
fputc rend le caractère écrit si l'écriture s'est faite sans
erreur, ou 
EOF en cas d'erreur.
 
#include <stdio.h>
int c;
FILE *fi,*fo;
/*   fi : résultat de fopen de fichier en lecture   */
/*   fo : résultat de fopen de fichier en écriture  */
while ((c = fgetc(fi)) != EOF)
   fputc(c,fo);
 
Il existe une fonction 
putc qui est rigoureusement identique à
fputc (même interface, même sémantique), sauf que 
putc est
implémenté comme une macro et non comme une vraie fonction C.
La même remarque que celle faite au sujet de 
getc s'applique donc à
putc.
 
 putchar (carac)
Un appel 
putchar(c) est rigoureusement identique à 
fputc(c,stdout).
 
 
 
 
 
 
 
 
 Next: Lecture et écriture par
 Up: Les entrées-sorties
 Previous: Ouverture et fermeture de
Bernard Cassagne
 
 Next: Lecture et écriture par
 Up: Les entrées-sorties
 Previous: Ouverture et fermeture de
Bernard Cassagne
1998-12-09