void ajoutrdv(void){
FILE *FichMED;
FILE *FichRDV;
struct RDV rdv;
struct medecin med;
int nummed;
int nblut = 0;
int recordsuiv;
int recordlibresuiv;
if ((FichRDV = fopen("FichRDV.txt","r+")) != NULL){
fread(&rdv, sizeof(struct RDV),1,FichRDV);
recordlibresuiv=rdv.minute;
recordsuiv=rdv.numrecord;
rdv.numrecord = 0;
cout<<"Heure du rendez-vous ? (hhmm)"<<endl;
cin>>rdv.heure>>rdv.minute;
cout<<rdv.heure<<rdv.minute<<rdv.numrecord<<endl;
fseek(FichRDV, sizeof(struct RDV) * recordsuiv, SEEK_SET);
fwrite(&rdv,sizeof(struct RDV),1,FichRDV);
rewind(FichRDV);
fread(&rdv,sizeof(struct RDV),1,FichRDV);
while (!feof(FichRDV)){
cout<<rdv.heure<<":"<<rdv.minute<<" "<<rdv.numrecord<<endl;
fread(&rdv,sizeof(struct RDV),1,FichRDV);
}
fseek(FichRDV, sizeof(struct RDV) * (recordsuiv-1), SEEK_SET);
fread(&rdv,sizeof(struct RDV),1,FichRDV);
cout<<rdv.heure<<":"<<rdv.minute<<" "<<rdv.numrecord<<endl;
fseek(FichRDV, sizeof(struct RDV) * recordsuiv, SEEK_SET);
fread(&rdv,sizeof(struct RDV),1,FichRDV);
cout<<rdv.heure<<":"<<rdv.minute<<" "<<rdv.numrecord<<endl;
rewind(FichRDV);
rdv.heure = 0;
rdv.minute = recordlibresuiv;
rdv.numrecord = recordsuiv + 1;
fwrite(&rdv,sizeof(struct RDV),1,FichRDV);
/*}
else{
}
}
}
fclose(FichMED);
}*/
fclose(FichRDV);
}
}
Voila, ce code source me parait fort bon, mais quand j'execute le pgm, y a des merde a l'affichage. Je m'explique :
quand je met un rdv a 10h10 puis un suivant a 20h20, g des nombre farfelu qui s'affichent. parcontre si je met un rdv a 20h20 et le suivant a 10h10, l'affichage est correcte. Si vous avez besoin du reste du source, dite le. (mais le pb ce situe dans cette fonction la)