Bonjour au sein d'un projet scolaire j'ai été amené à gérer une bibliothèque fictive (ajout de livres, emprunts, etc)
J'ai réussi à modifier les infos de ma structure en faisant saisir la nouvelle valeur des chaines de caractères mais là en l’occurrence on doit remplir l.emprunteur en fonction de l'utilisateur connecté, l.date_emprunt avec le numéro du jour actuel
J'ai pas d'erreur dans mon code mais l'affectation ne se fait pas au sein de la structure... C'est l'une des premières fois que je j'utilise des structures donc j'ai peut-être raté quelque chose d'important sur leur utilisation auquel cas je serais ravi d'en savoir plus !
Structure livre utilisée :
Recherche de l'ID entré dans le fichier livres préalablement ouvert :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 typedef struct livre livre; struct livre { char id[18]; char nom[100]; char editeur[30]; char auteur[30]; int quantite; char *cat; int date_emprunt; int date_lim; char emprunteur[30]; }; livre l;
emprunt.c :
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 while(fread(&l,sizeof(l),1,livres)==1) //livres est le fichier qui contient les livres ^^ { if(strcmp(l.id,(d))==0) //ici d est la chaine qui vient d'etre entrée (on a vérifié que la syntaxe d'un code isbn était respectée { if(l.quantite>0) { printf("\n\nLe livre est disponible !\n"); printf("ID :%s\n",l.id); printf("Categorie :%s\n",l.cat); printf("Nom :%s\n",l.nom); printf("Auteur :%s\n",l.auteur); printf("Editeur :%s\n",l.editeur); printf("Quantite :%d\n",l.quantite); printf("Date de l'emprunt : %i\n",l.date_emprunt); // je n'arrive pas à modifier ce paramètre dans la structure printf("Date de retour du livre : %i\n",l.date_lim); //je n'arrive pas à modifier ce paramètre dans la structure printf("Emprunteur : %s\n",l.emprunteur); //je n'arrive pas à modifier ce paramètre dans la structure printf("Voulez-vous l'emprunter ? (O/N) : "); emprunt(utilisateur,d); //on envoie l'utilisateur connecté et la chaine à rechercher } } }
Je me suis dit que le fait d'appeler une nouvelle fonction (emprunt.c) pendant
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 void emprunt (char utilisateur[], char d[]) { switch (getch()) { case 'o': { strcpy(l.emprunteur,utilisateur); l.date_emprunt=temps_syst(); l.date_lim=15; l.quantite=0; printf("\nLe livre a bien ete emprunte, vous devrez l'avoir rendu d'ici 15 jours.\n"); } break; [...] }devait "stopper" la lecture et par conséquent modifier les champs d'une autre structure que celle recherchée. Mais ajouter un nouveau while fread + strcmp dans emprunt.c ne solutionne rien du tout pour autant...
Code : Sélectionner tout - Visualiser dans une fenêtre à part while(fread(&l,sizeof(l),1,livres)==1)
Voilà j'espère avoir été clair, bonne journée !
Clément
Partager