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.
ces variables sont initialisées comme suit :
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;
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
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...
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?
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; }
merci
Partager