FGETC |
Demande un caractère dans un fichier |
---|---|
Langage C++ | cstdio (stdio.h) |
Syntaxe
int fgetc(FILE *ptrfichier); |
Paramètres
Nom | Description |
---|---|
ptrfichier | Ce paramètre permet d'indiquer l'identificateur de fichier |
Description
Cette fonction effectue la lecture d'un caractère dans un fichier.
Remarques
- La fonction fgetc() renvoie le caractère suivant du flux de données d'entrée à partir de la position actuelle et incrémente l'indicateur de position du fichier. Le caractère est lu comme un caractère non signé étant converti en entier.
- Si la fin du fichier est atteinte, la fonction fgetc() renvoie EOF. Cependant, puisque EOF est une valeur entière valide, lorsque vous travaillez avec des fichiers binaires, vous devez utiliser feof() pour vérifier la fin du fichier. Si la fonction fgetc() rencontre une erreur, EOF est également renvoyé. Si vous travaillez avec des fichiers binaires, vous devez utiliser ferror() pour vérifier les erreurs de fichier.
- Définition et utilité : La fonction fgetc en C++ permet de lire un caractère à partir d'un flux de fichier. Elle est définie dans la bibliothèque <cstdio>. L'utilisation de fgetc permet de lire un caractère à la fois à partir d'un fichier ouvert en mode lecture. Elle renvoie un caractère sous forme d'un entier (int) ou EOF si une erreur de lecture ou la fin du fichier est atteinte.
- Retour de fgetc : La fonction fgetc retourne un caractère sous forme d'un entier (correspondant à son code ASCII). En cas d'erreur ou si la fin du fichier est atteinte, elle retourne EOF (généralement défini comme -1 dans les implémentations C). Cette valeur permet de différencier un caractère valide d'une erreur ou de la fin de fichier.
- Utilisation typique pour la lecture séquentielle : fgetc est principalement utilisé pour effectuer une lecture séquentielle caractère par
caractère à partir d'un fichier. Il est couramment utilisé dans des boucles pour lire un fichier jusqu'à ce que la fin du fichier soit atteinte :
Cette approche permet de traiter chaque caractère du fichier individuellement.
- Gestion de la fin du fichier : fgetc renvoie EOF non seulement lorsque le fichier a été complètement lu, mais aussi en cas d'erreur lors de la lecture. Il est donc important de vérifier si fgetc retourne EOF avant de conclure que la fin du fichier a été atteinte. Une pratique courante est d'utiliser feof après l'appel à fgetc pour vérifier si la fin du fichier a été réellement atteinte.
- Compatibilité avec les fichiers binaires : Bien que fgetc soit couramment utilisée avec des fichiers texte, elle peut également être utilisée avec des fichiers binaires. Cependant, dans ce dernier cas, il est important de garder à l'esprit que la lecture caractère par caractère peut ne pas être la méthode la plus efficace pour manipuler de grandes quantités de données binaires. Pour les fichiers binaires, d'autres fonctions comme fread peuvent être plus appropriées.
- Manipulation des flux et des erreurs : Si une erreur survient pendant la lecture du fichier, fgetc renvoie EOF. Après un échec de lecture, il est souvent utile d'utiliser la fonction ferror pour détecter si une erreur a réellement eu lieu. Par exemple, après l'appel à fgetc, on peut vérifier l'état du flux avec ferror pour s'assurer que l'échec est dû à une erreur et non à la fin du fichier.
- Alternatives et comparaison avec d'autres fonctions : Bien que fgetc soit simple et utile pour la lecture caractère par caractère, elle peut être moins efficace que des méthodes comme fgets, lisant des lignes entières de texte. De plus, en C++, il existe des alternatives modernes pour lire des fichiers, comme l'utilisation de std::ifstream en combinaison avec les opérateurs >> ou get, offrant une interface plus moderne et plus sûre pour la gestion des fichiers.
Exemple
Prenons pour acquis que le fichier «gladir.txt» est le contenu :
gladir.comVoici un exemple montrant une utilisation plus classique de cette fonction :

on obtiendra le résultat suivant :
gladir.comVoir également
Langage de programmation - C++ - Référence procédures et fonctions - fgets
Langage de programmation - C++ - Référence procédures et fonctions - fopen
Langage de programmation - C++ - Référence procédures et fonctions - fprintf
Langage de programmation - C++ - Référence procédures et fonctions - fputc
Langage de programmation - C++ - Référence procédures et fonctions - fputs
Langage de programmation - C++ - Référence procédures et fonctions - fscanf
Langage de programmation - C++ - Référence procédures et fonctions - getc
Langage de programmation - C++ - Référence procédures et fonctions - getchar
Langage de programmation - C - Référence procédures et fonctions - fgetc
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 98.