Programmation language c, la fonction recherche dans un fichier

Fermé
oumay.ba Messages postés 2 Date d'inscription mercredi 11 mars 2015 Statut Membre Dernière intervention 21 mars 2015 - 11 mars 2015 à 15:52
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 12 mars 2015 à 00:17
Salut,je suis débutante en programmation language C .En faite j'ai un projet de GESTION APPARTEMENT , parmi les fonctionnalités que je dois développer c'est la recherche dans  un fichier à partir de cin client incluse dans une structure "struct client" que j'ai mentionné , Merci de m'aider à ceci et voici comment j'ai essayer de le faire. 





struct client{
char nom [20];
char prenom [20];
long age ;
char cin[9];
char telephone[9];
ADR adr;
}; typedef struct client CL;




printf("\n introduire le numero cin de client a rechercher : ");
scanf("%s",&client);;

do
{
fscanf(f,"%s",c.cin);

if (strcmp(c.cin,client)==0)
{
printf("\n client : %s\n %s\n %d\n %ld\n %s\n ",c.nom,c.prenom,c.age,c.telephone,c.cin);
exist=1;
}
}while(!feof(f));

if(exist=0)
{
printf(" \nle le client a rechercher n'existe pas ");
}
fclose(f);


}
}
if (n!=password)
printf("erreur");

getch();
}

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 816
12 mars 2015 à 00:17
Bonjour,

Il manque des fonctions.

scanf("%s",&client);;
Pas de & devant la variable. Comment est défini cette variable ?
char client[xxx] ?
Pas besoin de mettre 2 points virgule.

}while(!feof(f));
Ce n'est pas bon pour détecter la fin d'un fichier. Il faut lire le fichier par exemple via fgets(...).
Il faut rajouter également une condition de sortie dans le cas où existe vaut 1.

if(exist=0)
L'opérateur de comparaison en C est le double égal (==).

printf("erreur");
Il faut mettre un '\n' en fin de message avant le return 0; final.

getch();
Ce n'est pas standard. Plutôt getchar().

Cdlt,
0