Salut à tous, j'ai un petit souçis pour "reconnaitre" la fin d'un fichier.
Je m'explique: j'ai réalisé un petit programme qui calcule la taille d'un fichier donné.
Pour ce faire, j'utilise une boucle dans laquelle la fonction fgetc lit l'octet actuel (sa commence donc au début) et j'incrémente le nombre d'octet lu, jusqu'à ce que fgetc retourne EOF. Je connait donc la taille d'un fichier.
(Je conviens que c'est un programme qui ne sert strictement à rien puisque des fonctions déja toutes faites permettent de connaitre la taille d'un fichier)
Seulement voila, EOF équivaut à 0xFF, ce qui signifie qu'à chaque fois qu'un octet aura cette valeur, mon programme s'arrêtera là, estimant qu'il s'agit de la fin du fichier.
Je voulais donc savoir s'il n'y a pas une méthode plus logique qu'EOF pour connaitre la fin du fichier.
Voici un extrait du code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 do { taille_fichier ++; caractere_actuel=fgetc(fichier); printf ("j'ai lu %d octets et le caractere actuel en hexa est %0x\n", taille_fichier, caractere_actuel,); } while (caractere_actuel!= EOF); printf ("la taille du fichier fait %d octets", taille_fichier-1); }
Partager