Bonjour,
Voila mon petit souci : J'ai un fichier de structures qui contient des structures Candidat :
struct Candidat
{
char prenom[25];
char nom[25];
char parti[20];
int rep[11];
};
Le fichier candidats.dat contient 2 structures.
Ma procédure "compare" qui compare les réponses de l'opérateur à celles des candidats est la suivante :
void compare(int reponses[], int comp[])
{
int i=0, j;
struct Candidat c;
FILE *r;
r=fopen("candidats.dat","rb"); //On ouvre le fichier en mode lecture
fseek(r,0,SEEK_SET);
while(i<2) //Tant qu'on n'a pas comparer tous les candidats
{
fread(&c,sizeof(struct Candidat),1,r);
for(j=0;j<11;j++)
{
if(c.rep[j]==reponses[j])
{
comp[i]=comp[i]+1;
}
}
i=i+1;
}
fclose(r);
}
Mon problème est que la premiere réponse de chaque candidat ne se trouve pas en c.rep[0] mais en c.rep[-3] !!!
Comment cela se fait-il ???
Merci de vos réponses