bonsoir j'ai une structure de donnée ecrite en c je voudrais savoir comment la mettre dans un fichier et ouvrir ce fichier pour accéder a la structure
merci d'avance
bonsoir j'ai une structure de donnée ecrite en c je voudrais savoir comment la mettre dans un fichier et ouvrir ce fichier pour accéder a la structure
merci d'avance
Dans tous les cas (lecture ou écriture) tu ouvres le fichier en tant que fichier binaire puis utiliser les fonctions appropriées. fwrite permet d'écrire des données en mémoire vers un fichier ouvert en écriture. fread permet de charger en mémoire des données depuis un fichier ouvert en lecture.
Exemple d'écriture :
Exemple de lecture :
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> struct point_s { int a, b; }; int main() { struct point_s A = {1, -1}; FILE * f_out = fopen("A.raw", "wb"); if (f_out != NULL) { fwrite(&A, sizeof(A), 1, f_out); fclose(f_out); } else perror("A.raw"); return 0; }
Important : lire la doc de toutes ces fonctions.
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
22
23
24
25 #include <stdio.h> struct point_s { int a, b; }; int main() { struct point_s A; FILE * f_in = fopen("A.raw", "rb"); if (f_in != NULL) { if (fread(&A, sizeof(A), 1, f_in) == 1) printf("A = (%d, %d)\n", A.x, A.y); else fprintf(stderr, "Erreur de lecture dans le fichier : A.raw"); fclose(f_in); } else perror("A.raw"); return 0; }
En effet. Comme je l'ai dit les fonctions fread et fwrite manipulent les données telles qu'elles sont représentées dans la mémoire/dans le fichier, c'est donc bien sûr dépendant du système (les données ne sont pas forcément représentées de la même manière d'un système à un autre).
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager