Bonjour,
Le but de mon programme est de tester la présence d'une ligne d'un fichier dans un autre.
Si celle-ci n'existe pas dans le second fichier, je l'écrit dans un troisième fichier.
Apparemment, mon programme ne s'arrête pas à la fin du fichier, d'où une boucle folle qui m'écrit toutes les lignes dans mon troisième fichier.
Toute aide est la bien venue.
PS: J'ai essayer de remplacer les
Code :
|
par
Code :
|
Mais ça ne marche pas.
salut c'est peut etre que tu a mal mis les conditions de ta boucle.
si elle tourne a l'infinie.
qu'est ce que tu as ecrit comme conditions dans ta boucle et laquelle a tu prise (tant que, pour, répeter jusqu'a)
ton code est pratiquement illisible il n'y a pas de mise en forme, poste le plutot sur le forum avec la balise Code
J'ai modifier mon code, parce qu'il y avait pas mal d'erreur, mais j'ai toujours le même problème.
Donc à votre demande je le poste sur le forum.
Code :
|
Code :
|
Adapte ton code aux cli1 et 2 qui sont en string, pas besoin de char[1000] qui peut poser probleme si trop court.
Pour la boucle tu oublie de revenir au debut du fichier fic2.
Et tu fais comment pour revenir au début de ton fichier??
Code :
|
il est dans le code au dessus
oups excuse...
Apparemment le programme ne sort jamais du 2ième "do", de plus je crois qu'il ne va jamais dans le "if".
Le code que je t'ai mis au dessus fonctionne chez moi.
J'ai mis exactement le code que tu m'as donné, mais je ne sort toujours pas du "do" et je ne pense rentrer dans le "if".
J'ai remis le code plus ou moins comme il était parce que les getline(fic, cli) ne remplissait pas les variables.
Donc je résume, avec ce code :
Code :
|
Je ne sort pas du 2ième "do", et le booléen se met à vrai lorsque que je dépasse le nombre de ligne du fichier.(Le fichier comporte 10390 lignes).
En attente d'une solution...
Pour le getline fallait comme j'avais mis adapter les cli a des string.
Code :
|
Si la ca marche pas, le probleme est ailleurs.
heu... je te donne l'affichage de la console :
...
Position dans la fichier 1 : 2903232
Position dans la fichier 1 : 2904523
...
...
...
Position dans la fichier 1 : 2903232
Sortie fichier1
Voila ça en gros c'est ce qu'affiche la console, avec beaucoup moins de ligne évidemment.
Et le résultat c'est que ça ma ouvert un fichier extraction.csv qui ne contient rien...
Tu peux m'expliquer?
| Citation :
|
Ca, c'est mathematiquement impossible, si tu regarde l'algo tu comprendra par toi meme qu'a aucun moment tu ne reviens en arriere dans le fichier1, tu ne fais qu'avancer en lecture.
Si tu n'as rien dans le fichier3 c'est que ton if qui doit mettre le booleen a true a trouver false a la condition d'entree a chaque fois.
Essaie de mettre fic3.flush(); avant de faire le fic3.close() mais ca c'est dans le cas d'un compilo buggué.
As tu vraiment fais un copier/coller de ce que j'ai mis?
Avec quoi compiles tu le programme?
J'ai bien fais un copier coller de ce que tu avais mis. Par contre dans l'affichage de la console que je t'ai donné, c'est moi qui me suis trompé...
Mais c'est le genre d'affichage que ça me donne, tout en restant croissant...
Enfin tout pour dir que je ne vois aucun rapport avec le but du programme...
Sinon je compile avec Visual C++ 2005 Express.
Le programme ne marche toujours pas, mais finalement je n'en ai plus besoin.
Merci à tous pour cotre aide.
Il y a 1942 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
