FEOF |
Fin du fichier |
---|---|
Langage C | stdio.h |
Syntaxe
int feof(FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction indique si la fin du fichier est atteinte.
Algorithme
MODULE FEOF(stream) SI stream est a atteint la fin du fichier ALORS * Fin du fichier atteinte RETOURNE 1 SINON * Il reste des données à lire RETOURNE 0 FIN SI |
Remarques
- Vérification de la fin de fichier (EOF) : La fonction feof permet de vérifier si la fin du fichier (EOF) a été atteinte lors d'une opération de lecture sur un flux. Elle retourne une valeur non nulle (vrai) lorsque la fin du fichier est atteinte, et 0 (faux) si la fin du fichier n'a pas été atteinte. Cela est essentiel pour savoir quand arrêter une boucle de lecture.
- Utilisation après une opération de lecture : feof doit être appelée après une tentative de lecture sur le flux (par exemple, après fread, fgets ou fgetc). Si la lecture échoue à cause de la fin du fichier, feof indique que l'erreur n'est pas liée à un problème d'entrée/sortie, mais simplement à la fin du fichier.
- Distinction entre erreur et fin de fichier : Un point important à comprendre est que feof ne signale pas une erreur, mais seulement la fin du fichier. Si une erreur de lecture se produit avant d'atteindre la fin du fichier, il est nécessaire de vérifier l'état d'erreur à l'aide de ferror, car feof ne détecte pas les erreurs autres que celles liées à la fin du fichier.
- Précaution lors de la lecture : Utiliser feof avant d'essayer de lire peut mener à des comportements indésirables. Par exemple, appeler feof avant de lire peut donner une fausse impression de la fin du fichier. La bonne approche est de tenter d'abord une lecture et ensuite de vérifier l'état du flux avec feof pour voir si la fin du fichier a été atteinte.
- Pas applicable pour tous les flux : feof fonctionne spécifiquement sur les flux ouverts de type FILE*. Cela signifie qu'elle ne peut pas être utilisée avec d'autres types de flux, comme les flux de mémoire ou les flux réseau, sauf si ces derniers ont été correctement gérés pour permettre la vérification de la fin du fichier.
- Complémentarité avec d'autres fonctions de flux : En combinaison avec fgetc, fgets, ou fread, feof est très utile pour déterminer la fin d'un fichier et gérer les boucles de lecture. Par exemple, dans une boucle de lecture de ligne par ligne, feof permet de sortir proprement de la boucle une fois que toutes les données ont été lues.
- Gérer des fichiers de tailles variables : Lors de la lecture de fichiers de tailles inconnues ou très grandes, feof permet de savoir quand la lecture peut s'arrêter, en particulier lorsqu'on travaille avec des fichiers de données binaires ou textuels. Sans une gestion appropriée de feof, des boucles infinies ou des erreurs peuvent survenir si la fin du fichier est atteinte sans une vérification préalable.
Exemple
Prenons pour acquis que le fichier «readtext.txt» est le contenu :
UnDeux
Trois
Quatre
Cinq
Six
Sept
Huit
Neuf
Dix
Onze
Douze
Treize
Quatorze
Quinze
Seize
Voici un exemple montrant une utilisation plus classique de cette fonction :
Essayer maintenant !
on obtiendra le résultat suivant :
1:Un2:Deux
3:Trois
4:Quatre
5:Cinq
6:Six
7:Sept
8:Huit
9:Neuf
10:Dix
11:Onze
12:Douze
13:Treize
14:Quatorze
15:Quinze
16:Seize
Voir également
Langage de programmation - C - Référence procédures et fonctions - fopen
Langage de programmation - C - Référence procédures et fonctions - fseek
Langage de programmation - C - Référence procédures et fonctions - rewind
Langage de programmation - C++ - Référence procédures et fonctions - feof
Références
Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 731.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 96.
Dernière mise à jour : Mardi, le 28 juillet 2015