Salut à tous je suis en train de faire un programme et j’ai pas mal d’erreur mais j’ai du mal à les résoudre est-ce que vous pouvez m'aider s’il vous plaît ? Explications du programme : J’ai dans un fichiers .txt une liste de nom,il y en a une multitude. Et par exemple, si je saisis le nom DUPONT, j’aimerais qu’il affiche toute les personnes qui s’appelle DUPONT. Par exemple:
DUPONT PIERRE
DUPONT JEAN
DUPONT LOIC
/*Liste des en-tête nécessaires*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char nomfichier[128] = { 0 };
char tabfichier[BUFSIZ];
char buffer[BUFSIZ];
/* Fonction pour vider le buffer */
void viderBuffer(void)
{
int c;
while ((c = getchar()) != EOF && c != '\n');
}
/*Fonction pour rechercher des mots*/
int chercher_mot(int mot, int fichier ) {
{
char* fi = strchr(tabfichier, '\n');
if (fi != NULL) {
*fi = 0;
}
}
while (fgets(buffer, sizeof(buffer),fichier)) {
char* tab, * c = strchr(buffer, '\n');
if (c != NULL)
{
*c = 0; // 0 de fin de chaîne
}
else
{
continue; // Lecture d'une nouvelle ligne
}
// Recherche du mot 'tab' dans 'buffer'
tab = buffer;
while ((tab = strstr(tab, tabfichier)) != NULL)
{
printf("mot trouvé en %d colonne de %s\n", (int)(tab - buffer), buffer);
}
}
}
/*Fonction principale main()*/
int main() {
//Choix du fichier
printf("nom de fichier ? ");
char nom_de_fichier[128];
scanf("%s", nom_de_fichier);
//Ouverture du fichier choisi
FILE* fichier;
fichier = fopen(nom_de_fichier, "r");
//Si le fichier ne s'ouvre pas (la réponse est nulle)
if (fichier == NULL) {
perror("fpopen");
return;
}
//Sinon le fichier s'ouvre et la fonction s'exécute
else {
printf("Mot ?");
char mot[128];
scanf("%s", mot);
viderBuffer(buffer);
chercher_mot(mot, fichier);
fclose(fichier);
}
return 0;
}
Merci de votre aide
+0
-0