Boucle en c
khalil
-
UaLShark Messages postés 191 Date d'inscription Statut Membre Dernière intervention -
UaLShark Messages postés 191 Date d'inscription Statut Membre Dernière intervention -
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
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Vlc lire en boucle ✓ - Forum Lecteurs et supports vidéo
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Pc qui s'allume et s'éteint en boucle - Forum Virus
- Huawei s'allume et s'éteint en boucle - Forum Huawei
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;
}