Bonjour à tous

J'ai un petit bug que j'ai réussi à résoudre de maniéré étrange. J'aimerais donc votre avis sur la situation.

J'ai fichier que j'ouvre en mode rb+:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
repF=fopen("reponse.dat","rb+");
Et je stocke dans ce fichier des instances de ma structure Reponse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
Reponse reponse;
reponse.phrase="blabla";
reponse.occurences=777;
fseek(repF,0,SEEK_END);	
fwrite(&reponse,sizeof(Reponse),1,repF);
Et un moment dans mon code je modifie toutes les réponses qui sont dans le fichier:
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
Reponse reponse;
 
fseek(file,0,SEEK_END);
int taille=ftell(repF);
 
fseek(repF,0,SEEK_SET);
while(ftell(repF)<taille) 
{
	fread(&reponse,sizeof(Reponse),1,repF);
	reponse.occurences=0;
 
	fseek(repF,-sizeof(Reponse),SEEK_CUR);
	fwrite(&reponse,sizeof(Reponse),1,repF);
 
	int sauv=ftell(repF); // Voici les 2 lignes qui empêchent le bug
	fseek(repF,sauv,SEEK_SET); //
}
Et si je ne mets pas c'est deux lignes:
int sauv=ftell(repF); // Voici les 2 lignes qui empêchent le bug
fseek(repF,sauv,SEEK_SET); //
ben les deux premières réponses du fichier sont correctement modifiés mais toutes les suivantes sont remplacé par la 2eme réponse.

Vous avez un soupçon d'idée ?
Merci d'avance et bonnes fêtes