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
1998-12-09