Boucle en c
khalil
-
UaLShark Messages postés 193 Statut Membre -
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
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
A voir également:
- Boucle en c
- Smart tv qui s'allume et s'éteint en boucle - Forum Téléviseurs
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Vlc lecture en boucle ✓ - Forum Lecteurs et supports vidéo
- Huawei s'allume et s'éteint en boucle - Forum Huawei
- Pc qui s'allume et s'éteint en boucle - Forum Virus
1 réponse
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;
}
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;
}