Bonjour à tous,

j'ai un programme qui lit des lignes d'un fichier. Dans un but de confort j'ai mis en place un système de comptage.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
        double taillefichier;
	double compteur = 0;
	int pourcent = 0;
	int palier = 0;
ces variables sont initialisées comme suit :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
                //pour connaitre la taille du fichier (l'ouverture du fichier est vérifiée)
                fseek(fichier1 , 0, SEEK_END ); //On trouve la fin du fichier
                taillefichier = ftell(fichier1);
                fseek(fichier2 , 0, SEEK_END ); //On trouve la fin du fichier
                taillefichier += ftell(fichier2);
 
                //initialisation boucle
		rewind(fichier2);
		rewind(fichier1);
                //...code...
 
                //a chaque fois qu'une ligne est lue
                fgets(donnee1, 100, fichier1);
		compteur += sizeof(char) * strlen(donnee1);
 
                //...code...
et enfin pour l'affichage de la progression du traitement tous les 5% :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
                        //à chaque fin de boucle
                        pourcent = compteur/taillefichier*100;
 
                        //comptage des infos pour avoir un ordre d'idee de l'avancement
                        if(((pourcent % 5) == 0)&&(palier != pourcent))
                        {
                                printf("\n%d%c des lignes ont ete traitees.", pourcent, 37);
				palier = pourcent;
                        }
Le problème est que le pourcentage rendu va bien au-delà de 100%, la boucle s'arrête vers 140%... quelqu'un pourrait m'expliquer pourquoi?

merci