Boucle en c

khalil -  
UaLShark Messages postés 193 Statut Membre -
Bonjour,
j'ai cette boucle qui ne s'arrête quand je l'exécute .le but de cette boucle est d'afficher la ligne d'un fichier contenant nom .quand j'exécute mon programme ça m'affiche la ligne mais elle ne s'arrete pas
void recherche()
#define TAILLE_MAX 1000
{
char chaine[TAILLE_MAX]="";
char nom[200];
FILE *fp;
printf("donner le nom du pays : ");
scanf("%s",&nom);
fp=fopen("Articles","r");
if (fp != NULL)

while (fgets(chaine,TAILLE_MAX,fp)!=nom)

printf("%s\n", chaine);

fclose(fp);

}
merci de me répondre très vite
Configuration: Windows XP
Firefox 2.0.0.13

1 réponse

  1. UaLShark Messages postés 193 Statut Membre 35
     
    si une ligne du fichier représente un nom

    while (fgets(chaine,TAILLE_MAX,fp)!=nom)

    retournera toujours true
    prace que à la fin de chaque ligne il y'a le retour chariot juste à la fin et qui n'est pas visible
    pense à les enlever :

    while (fgets(chaine,TAILLE_MAX,fp)!=NULL)
    {
    printf("%s\n", chaine);
    for (int i = 0 ;i<strlen(chaine);i++)
    {
    if(*(chaine+i) == '\r' ||*(chaine+i) == '\n') // anti Slash r ou anti Slach n
    {*(chaine+i) = '\0'; // Anti Slash 0 pour enlever les retours chariot
    break;
    }
    }
    if (strcmp(chaine,non) == 0 )
    break;
    }
    0