#1 Le 24/05/2008, à 12:47
- Maesp
Entrée / sortie dans un fichier binaire
Bonjour,
Voila plusieurs jours que je cherche désepérément des informations pour débloquer un problème.
Le but est d'enregistrer des données dans un fichier binaire et de pouvoir par la suite enregistrer des modifications (sans devoir réécrire tout le fichier et sans devoir le reparcourir entièrement).
Voici le code que me pose problème:
Main
#include <stdio.h>
void ecriture(FILE * fichier, int *pnelem, int *pnelem2);
void lecture(FILE * fichier, int *pnelem, int *pnelem2, int *pverif);
int main(void){
FILE * fichier;
int nelem = 2, nelem2 = 1, verif=0;
fichier = fopen("c:\\fichier.DATA","a+b");
ecriture(fichier, &nelem, &nelem2);
lecture(fichier, &nelem, &nelem2, &verif);
nelem = 5;
nelem2 = 6;
verif=0;
ecriture(fichier, &nelem, &nelem2);
lecture(fichier, &nelem, &nelem2, &verif);
fclose(fichier);
return 0 ;
}
Routines
Code :
Routines
void ecriture(FILE * fichier, int *pnelem, int *pnelem2){
fseek(fichier,4, SEEK_SET);
fwrite(pnelem,sizeof(int),1,fichier);
fseek(fichier,0, SEEK_SET);
fwrite(pnelem2,sizeof(int),1,fichier);
fseek(fichier,8, SEEK_SET);
fwrite(pnelem,sizeof(int),1,fichier);
fseek(fichier,12, SEEK_SET);
fwrite(pnelem2,sizeof(int),1,fichier);
}
void lecture(FILE * fichier, int *pnelem, int *pnelem2, int *pverif){
fseek(fichier,4, SEEK_SET);
fread(pverif,sizeof(int),1,fichier);
printf("fread =%d\n",*pverif);
fseek(fichier,0, SEEK_SET);
fread(pverif,sizeof(int),1,fichier);
printf("fread =%d\n",*pverif);
fseek(fichier,8, SEEK_SET);
fread(pverif,sizeof(int),1,fichier);
printf("fread =%d\n",*pverif);
fseek(fichier,12, SEEK_SET);
fread(pverif,sizeof(int),1,fichier);
printf("fread =%d\n",*pverif);
}
La premiere lecture ecriture fonctione mais la 2eme non. Pourquoi?
Pourriez vous m'éclaircir sur ce sujet?