Bonjour à tous, j'ai besoin de votre aide car j'ai un soucis dans le code suivant :


Voici la structure que j'utilise,

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
struct film 
    { char titre[100],acteurs[100],genre[100];
    int places,duree;
      short supp;
    };


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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
void tarif ()
{
 
    struct film a;
    char title[100],rep;
    int pla,prix,z;
    int code,x,i=0;
    FILE *f;
 
  printf ("\n                                                                                     Bienvenue dans la consultation des tarifs de CineMaverick ! ");
  printf ("\n\n                                                                                     Pour quel film voulez vous reserver vos places ?");
  scanf(" %s",title);
  fflush(stdin);
    f=fopen("d:/projetc/film.dat","rw");
  if(f)
  { x=fread(&a,sizeof(a),1,f);
    while(!feof(f))
    { if(a.supp==0)
 
      {if(strcmpi(a.titre,title)==0)
        { 
 
           printf("\n TITRE : %s \n\nACTEURS : %s \n\n GENRE : %s \n\nDUREE : %d min \n\nPLACES DISPOS : %d \n\n",a.titre,a.acteurs,a.genre,a.duree,a.places);
 
           printf("\n                                                                                      %d   places restantes",a.places);
           printf("\n                                                                                     est-ce le bon film(o/n) ? ");
          scanf(" %c",&rep);
           if(rep=='o'||rep=='O')
           {
            printf("\n\n                                                                                     Une place coute 10 euros,combien en voulez vous ?");
            scanf("%d",&pla);
            fflush(stdin);
            a.places= a.places-pla;
 
            if (a.places<0)
                 printf("\n                                                                                     Il n'y a plus assez de places restantes");
           else
            {
                if(a.places>0)
             {
           prix=pla*10;
           printf("\n                                                                                     Il y a : %d , places restantes",a.places);
           printf("\n                                                                                     Vous devez payer : %d",prix);
 
             }
            }
           }
           else
        fread(&a,sizeof(a),1,f);
        }
         else
       printf("\n                                                                                     erreur, ce film n'existe pas!");
            }
          x=fread(&a,sizeof(a),1,f);
 
 
    }
 
    fclose(f);
  }
  else
    printf("\n                                                                                     erreur, le fichier n'existe pas ");
}

Donc en gros je voudrais que quand l'utilisateur entre le nombre de places qu'il désire, le nombre de places dispo dans le fichier ( a.places) se décremente aussi dans le fichier.

Car dans mon code ci-dessus, il se décremente uniquement a l'ecran et puis un fois que je réaffiche ce qu'il y a dans le fichier, c'est toujours le nombre de places initial qui s'affiche.

Quelqu'un peut il me dire comment remédier à ca ?

Merci d'avance et bonne journée.