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
Routines
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
18
19
20
21 #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 ; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 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); }La premiere lecture ecriture fonctione mais la 2eme non. Pourquoi?
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
18
19 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); }
Pourriez vous m'éclaircir sur ce sujet?
Partager