Ecrire une structure dans un fichie en c svp

Résolu
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007 - 20 févr. 2007 à 11:15
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007 - 20 févr. 2007 à 13:41
#define max_m 1
typedef struct{
int x,y,z;
}position;
typedef struct{
char *nom_objet,*type_pbjet;
position p[max_m];
}objet;

/**********************//
objet ob1;
FILE* f1;
fprintf(f1,"nom:%s\ntype:%s\nposition(%d,%d,%d)\n",ob1.nom_objet,ob1.type_objet,ob1.p[0].x,ob1.p[0].y,ob1.p[0].z);
 

il ya pas plus simple

2 réponses

goast_tu Messages postés 212 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 28 mai 2011 2
20 févr. 2007 à 11:36
le plus simple c'est d'ecrire une structure dns un fichier sous forme binaire


fwrite(&objet, sizeof(objet), 1, f1);


mais dans ce cas les chaines de caracters devront etre stoquées directement dans la structure

Par exemple


#typedef TAILLE_NOM  20

#typedef TAILLE_TYPE  10
typedef struct{

char nom_objet[TAILLE_NOM],

char type_pbjet[TAILLE_TYPE];

position p[max_m];

}objet;


Le defaut de cette methode c'est que s'il y a des pointeurs dans la
structure ils perdent leur valeur (je veux dire apres qd on va lire le
fichier ils vont pas pointer sur les bonnes valeures) et d'autre part
cette facon d'ecrire n'est pas portable(car l'espace reservé pour les
structures {sizeof(objet)} sera different pour des systems
d'exploitations comme windows et linux)
<hr size="2" width="100%" />Trafic web gratuit!!!
3
yacjapan Messages postés 10 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 11 mars 2007
20 févr. 2007 à 13:41
c'est ca que je cherche merci
0
Rejoignez-nous