#include <stdio.h>
#include <stdlib.h>
#define NBMAXSOCIETE 40
struct societe {
char nom[30];
FILE* licence[50];
};
struct societe masociete[NBMAXSOCIETE];
int rep, i, j, nbsocietes, nblicences;
int ok=0;
char nomsociete[30];
void Enregistrer (void);
void Ouvrir (void);
int main(int argc, char *argv[])
{
while (1) {
printf("-----------------------------------\n");
printf("1- Enregistrer soci\202t\202\n");
printf("1- Ouvrir soci\202t\202\n");
scanf("%d", &rep); //Regarde le choix
if(rep==1) Enregistrer();
if(rep==2) Ouvrir();
}
return 0;
}
void Enregistrer (void)
{
printf("Nombre de soci\202t\202s a cr\202er : ");
scanf("%d", &rep); //On demande le nb de sociétés à créer d'un coup
for (i=0; i<rep; i++)
{
printf("Nom de la soci\202t\202 : ");
scanf("%s", &masociete[nbsocietes].nom[0]); //On prend son nom
printf("Nombre de licence de la soc\202t\202 %s : ", &masociete[nbsocietes].nom[0]);
scanf("%d", &nblicences); //On prend le nb de licences
for (j=0; j<nblicences; j++)
{
masociete[nbsocietes].licence[j] = fopen("main.c", "r");
//Tu enregistres tes licences dans masociete[nbsocietes].licence[j]
}
nbsocietes++;
}
printf("%d soci\202t\202(s) ont \202t\202 enregistr\202e(s).\n", rep);
}
void Ouvrir (void)
{
printf("Nom de la soci\202t\202 a ouvrir : ");
scanf("%s", &nomsociete[0]);
ok=0; //On initialise la variable qui dira si on a trouvé
for (i=0, j=0; i<nbsocietes && ok==0; i++)
{
if (strcmp(masociete[i].nom, nomsociete)==0) //Si on trouve la bonne société
{ok=1; //On a trouvé
while (masociete[i].licence[j]!=NULL){j++;} //Tant qu'elle a une licence on continue
printf("La soci\202t\202 %s a %d licence(s).\n", masociete[i].nom, j);
}
}
if (ok==0) printf("Soci\202t\202 non trouv\202e.\n");
}
Voilà pour les structures j'ai pas fait l'ouverture et l'enregistrement dans un fichier car je suis pas très fort là dessus donc tu persd les donées si tu ferme le prog mais voilà j'espère que ça peut t'aider.
Bon dév.