Help pliz pour un labo sur les liste chaine et les fichiers

cs_Infern0 Messages postés 5 Date d'inscription jeudi 13 novembre 2003 Statut Membre Dernière intervention 23 août 2010 - 13 nov. 2003 à 20:22
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 13 nov. 2003 à 20:54
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)

1 réponse

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
13 nov. 2003 à 20:54
comme ca c'est difficile a voir
fflush(stdin) au cas ou ton probleme serais lie au buffer d'entree
0
Rejoignez-nous