Bonjour,

je suis en train de realiser un programme de "gestion des comptes bancaires" en langage C;

Dans le programme, j'ai une structure compte declarée comme une variable globale:



Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
struct compte
{
       char numeroCpte [11]; //numero du compte
       char typeCompte [7]; //type du compte: cheque ou epargne
       char nomClient [50]; //nom du client
       char prenomClient [50]; //prenom(s) du client
       char statutClient [12]; //statut social du client: salarie ou non salarie
       char categorieCompte [13]; //categorie du compte: particulier ou professionnel
       char numeroClient [11]; //numero du client
       char dateCreation [10]; //date de creation du compte
};
 
struct compte cpt; // declaration d'une variable cpt de type compte


J'enregistre les donnees dans la structure compte dans un fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
void EnregDansFichier ()
{
     char nomFichier [26]; //nom du fichier dans lequel il faut sauvegarder
     int erreur;
     int i;
     FILE *sortie;
 
     printf("Entrez le nom du fichier: ");
     scanf("%s",&nomFichier);
 
       sortie=fopen(nomFichier,"at");
 
       if (sortie == NULL)
       {
            printf("Un probleme est survenue lors de la tentative d'enregistrement de vos donnees dans le fichier %s\n",nomFichier);
       }
       else
       {
            fprintf(sortie,"%s \n %s \n %s \n %s \n %s \n %s \n %s \n %s \n", cpt.numeroCpte, cpt.typeCompte, cpt.nomClient, cpt.prenomClient, cpt.statutClient, cpt.categorieCompte, cpt.numeroClient, cpt.dateCreation);
       } 
       fclose(sortie);
}


Je voudrais effectuer une recherche à partir du nomClient, ou à partir du numeroCpte, dans le fichier, et afficher l'enregistrement correspondant:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
void RechercheCpte ()
{
     char numeroCpte [11];
     char nomClient [50];
     char nomFichier [26];
     int trouve1, trouve2=0;
     FILE *sortie;
 
     printf ("Entrez le nom du fichier: "); scanf ("%s", nomFichier);
     sortie=fopen(nomFichier, "rt");
 
     printf ("\n\n\nEntrez le nom du client, ou le numero de compte que vous cherchez");
     printf ("\n\n\nNumero compte: "); scanf ("%s", numeroCpte);
     printf ("\n\n\nNom client: "); scanf ("%s", nomClient);
 
     while (!EOF || !trouve1 || !trouve2) // tant que la fin du fichier n'est pas atteint
     {
         if (numeroCpte) // si un numero de compte a ete saisi
         {
             if (nomClient) // si un numero de compte et un nom de client ont ete saisi
             {
                trouve1=(strcmp(nomClient, cpt.nomClient));
             }
             else // si un numero de compte a ete saisi, mais pas de nom client
             {
                 trouve2=(strcmp(numeroCpte, cpt.numeroCpte));
             }
         }
         else // si aucun numero de compte n'a ete saisi
         {
             if (nomClient) // si aucun numero de compte n'a ete saisi, mais qu'un numero de client a ete saisie
             {
                trouve1=(strcmp(nomClient, cpt.nomClient));
             }
         } // fin du if
 
         fscanf(sortie,"%s \n %s \n %s \n %s \n %s \n %s \n %s \n %s \n", &cpt.numeroCpte, &cpt.typeCompte, &cpt.nomClient, &cpt.prenomClient, &cpt.statutClient, &cpt.categorieCompte, &cpt.numeroClient, &cpt.dateCreation);              
 
     } // fin du while
 
     fscanf(sortie,"%s \n %s \n %s \n %s \n %s \n %s \n %s \n %s \n", &cpt.numeroCpte, &cpt.typeCompte, &cpt.nomClient, &cpt.prenomClient, &cpt.statutClient, &cpt.categorieCompte, &cpt.numeroClient, &cpt.dateCreation);
         // fscanf(sortie,"%s\n%s\n%s\n%s\n%s\n%s\n%s\n%s\n",                &cpt.numeroCpte, &cpt.typeCompte, &cpt.nomClient, &cpt.prenomClient, &cpt.statutClient, &cpt.categorieCompte, &cpt.numeroClient, &cpt.dateCreation);
 
    system ("pause");
}
[/code]