cobra176
Messages postés86Date d'inscriptionmercredi 1 novembre 2000StatutMembreDernière intervention21 janvier 2009
-
9 févr. 2005 à 10:03
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 2006
-
9 févr. 2005 à 16:22
bonjour tout le monde
j'ai un code qui me permet d'afficher les lignes dans un fichier contenat les mots que j'ai choisit et si il n'y a pas le mot recherche il m'afficher ce mot n'existe pas mais voila pour certains tout marche bien et d'autres fois il affiche à la fin de la recherche d'un mot qui existe
la phrase mot n'existe pas aprés l'affichage
voici mon code si vous pouvez jetter un coup d'oeil
lecture = fopen(nom, "r");
printf(" saisir le mot rechercher en respectant les minuscules et les MAJUSCULES\n");
scanf("\n%s",&szFind);
if(strstr(szLine, szFind) != NULL) // condition d'affichage et d'ecriture
{
printf("\n%s",szLine); // affichage de la ligne contenant le mot rechercher
}
}
if(strstr(szLine, szFind) == NULL)
{
printf("le mot demande n'existe pas dans le fichier");
fprintf(ecriture,"le mot demande n'existe pas dans le fichier");
HCJarod
Messages postés221Date d'inscriptionmardi 12 août 2003StatutMembreDernière intervention11 décembre 20081 9 févr. 2005 à 15:50
Slt, pas de mistère, c'est normal que tu est ce bug.
ex :
fichier en entrer contient :
"c'est moi qui //ligne 1
est trouve" //ligne 2
ton prog :
je lui demande de chercher "moi"
dans le while 1ère itération, il trouve et affiche =>szLine vaut "
c'est moi qui" et szFind vaut "moi"
2ème itération, il n'affiche rien => szLine vaut "
est trouve" et szFind vaut "moi"
3ème itération, fin de fichier et fin du while=> szLine vaut toujours "est trouve" et szFind vaut toujours "moi"
Maintenant regarde ton test dans le blanc des yeux et tu comprendra......
Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 9 févr. 2005 à 16:22
Rajoute un compteu (ou un booléen) initiliasé au début à 0 (ou à FALSE), incrémente le dans la boucle while (ou met le à TRUE) si le mot est trouvé. A la fin il suffit de tester la valeur du compteur (ou du booléen).