Recherche de chaîne de caractère dans un fichier
Résolu
louberlu
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
louberlu Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
louberlu Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je veux faire une fonction qui recherche une chaîne de caractère dans un fichier. Pour cela, je lis le fichier bloc par bloc avec fgets. On nous dit de prendre des blocs de 512 caractères. Je voudrais que la boucle s’arrête soit à la fin du fichier soit lorsqu'il trouve la chaîne de caractère.
Pour l'instant c'est juste un prototype.
Le problème est qu'il y a une erreur de segmentation après la dernière ligne. Au lieu que la boucle s’arrête dès que je passe res à vrai, elle continue jusqu'à la dernière ligne. Et au lieu de sortir à ce moment, il affiche l'erreur de segmentation.
Si vous pouviez m'éclairer s'il vous plait.
Merci d'avance,
louberlu
Je veux faire une fonction qui recherche une chaîne de caractère dans un fichier. Pour cela, je lis le fichier bloc par bloc avec fgets. On nous dit de prendre des blocs de 512 caractères. Je voudrais que la boucle s’arrête soit à la fin du fichier soit lorsqu'il trouve la chaîne de caractère.
Pour l'instant c'est juste un prototype.
bool isInFile(char* fic, char* word){
char* car = malloc(sizeof(char*));
FILE* file = NULL;
int i = 0;
bool res = false;
file = fopen(fic,"r");
if(file==NULL){
printf("Erreur lors de l'ouverture du fichier %s.\n",fic);
perror("Error: ");
exit(-1);
}else{
while(fgets(car,256,file)!=NULL || !res){ //Erreur de segmentation avant la sortit de la boucle
if(strstr(car,word) != NULL){
res = true;
printf("Ce fichier contient '%s'.\n",word);
}
i++;
printf("%d\n",i);
}
fclose(file);
}
free(car);
return res;
}
Le problème est qu'il y a une erreur de segmentation après la dernière ligne. Au lieu que la boucle s’arrête dès que je passe res à vrai, elle continue jusqu'à la dernière ligne. Et au lieu de sortir à ce moment, il affiche l'erreur de segmentation.
Si vous pouviez m'éclairer s'il vous plait.
Merci d'avance,
louberlu
A voir également:
- Recherche de chaîne de caractère dans un fichier
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Caractère ascii - Guide