Programmation language c, la fonction recherche dans un fichier

Fermé
Utilisateur anonyme - 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();
}
A voir également:

1 réponse

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
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