nerone21
Messages postés108Date d'inscriptionvendredi 4 mars 2005StatutMembreDernière intervention 5 mai 2011
-
29 déc. 2006 à 16:43
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
29 déc. 2006 à 18:28
Bonsoir a vous les serials codeurs, alors j'aurais besoin de vos lumiere car j'ai un petit gros probleme que je ne comprend pas.
voici mon code en dessous, et mon probleme est que cette fonction est censé me comparer 2 fichier texte ligne a ligne (bon c'est peut etre pas trés clair... dsl)
toujours es-t'il que j'extrais la premiere ligne de mon premier fichier txt et je veut la comparer a tte les lignes du deuxieme fichier txt donc la premiere comparaison ce passe bien, et là c'est le drame!!! lorsque je passe a la deuxieme comparaison, je recupere bien la deuxieme ligne de mon premier fichier, mais lorsque j'essai de recuperer les lignes du deuxieme fichier, je n'arrive pas a rentrer ds la boucle while, c'est comme si il advenait une erreur lors de l'appel au "getline(fichiertemp,lignetemp);" donc le programme ne fait pas d'erreurs.
je code avec vs2005pro en projet win32.
std::ifstream fichier( "c:\\mon log temp.txt" );
std::ifstream fichiertemp("c:\\mon log exclus");
if ( fichier && fichiertemp) // ce test échoue si le fichier n'est pas ouvert
{
std::string lignetemp;
std::string ligne;
// cette boucle s'arrête dès qu'une erreur de lecture survient
while ( std::getline( fichier, ligne ) )
{
while (std::getline(fichiertemp,lignetemp))
{
if(ligne==lignetemp)
{
...
}
}
}
}
alors si quelqu'un peut m'aider, je l'en remercie vivement.
pepsidrinker
Messages postés151Date d'inscriptionmardi 12 octobre 2004StatutMembreDernière intervention15 avril 2009 29 déc. 2006 à 17:48
Si j'ai bien compris, ton probleme est tout a fait normal, car, arrivé à ta 2ieme comparaison, le 'curseur' du fichier 2 est deja a la fin du fichier (EOF), et donc, ton programme veut faire un GETLINE sur une fin de fichier...
Pour evitter se probleme, tu doit , a chaque comparaison complete du fichier 2 , remettre le curseur du fichier 2 à la premiere ligne...
regarder les methode du genre 'seek' ou kkchose du genre pour remttre le pointeur à la premiere BYTE du fichier.