Péreniser une liste dans une fichier

geninfo Messages postés 6 Statut Membre -  
mype Messages postés 2449 Statut Membre -
Bonjour,
Excuse moi je suis entrain d'écrire un programme en C sur Visual C++ , et je voudrai péreniser le contenu de ma liste chaine dans un fichier en binaire si vous avez une idée aidez-moi
Merci
A voir également:

9 réponses

mype Messages postés 2449 Statut Membre 437
 
pour metre ta liste chaine dans un fichier tu peux utiliser la fonction fwrite et tu ajoute chaque element de la liste comme ça
0
geninfo Messages postés 6 Statut Membre
 
merci de ta reponce mais je sais pas comment le faire,t'as pas un exemple complet ?
0
mype Messages postés 2449 Statut Membre 437
 
voila un exemple c'est une fonction pour inserer une liste chainee dans un fichier en mode binaire

void save(struct exemple *p) {
    FILE *f=fopen("fichier","wb");
    while(p){
        fwrite((char *) p,sizeof(struct exemple),1,fichier);
        p=p->suiv;
    }
    fclose(fichier);
}
0
geninfo Messages postés 6 Statut Membre
 
merci pour ta reponce.en fait j ai fait une fonction pour enregistrer dans un fichier binaire et je sais pas cmt faire la fonction pour lire a partir d un fichier binaire c ca ma fonction enregstrer...


void EcrireFichier(voiture v)
{
voiture pc;
FILE *fichier;
pc=v;
fichier=fopen(NomFichier,"w");
if(v==NULL)
{
fclose(fichier);
}
while(pc!=NULL)
{
fprintf(fichier,"%d\n",pc->puissance);
fprintf(fichier,"%f\n",pc->prix);
fprintf(fichier,"%s\n",pc->marque);
fprintf(fichier,"%s\n",pc->modele);
pc=pc->suivant;
}
fclose(fichier);
}


j ai besoin d aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mype Messages postés 2449 Statut Membre 437
 
je pense pas que ta fonction pour enregistrer marche essaye plutot ça

void EcrireFichier(voiture *v) 
{ 

FILE *fichier; 

        fichier=fopen("NomFichier","w"); 
    if(fichier==NULL) 
        printf("le fichier n'existe pas\n");
 
while(v!=NULL) 
    { 
    fprintf(fichier,"%d\n",v->puissance); 
    fprintf(fichier,"%f\n",v->prix); 
    fprintf(fichier,"%s\n",v->marque); 
    fprintf(fichier,"%s\n",v->modele); 
    v=v->suivant; 
    } 
fclose(fichier); 
}
0
geninfo Messages postés 6 Statut Membre
 
merci de ta reponce.je vais essayer avec ça. tu sait comment lire dans ce fichier binaire
0
mype Messages postés 2449 Statut Membre 437
 
c'est presque pareil tu ouvre ton fichier avec le mode "rb" et tu lis ce que tu veux avec la fonction fread
0
geninfo Messages postés 6 Statut Membre
 
si tu peux m écrire la fonction ca serai mieux car je suis perdu j ai pas bien compris ses truc pourtant j ai besoin de la fonction lire pour ca



void EcrireFichier(voiture *v)
{

FILE *fichier;

fichier=fopen("NomFichier","w");
if(fichier==NULL)
printf("le fichier n'existe pas\n");

while(v!=NULL)
{
fprintf(fichier,"%d\n",v->puissance);
fprintf(fichier,"%f\n",v->prix);
fprintf(fichier,"%s\n",v->marque);
fprintf(fichier,"%s\n",v->modele);
v=v->suivant;
}
fclose(fichier);
}
0
mype Messages postés 2449 Statut Membre 437
 
pour lire les element du fichier et les metre dans une liste chaine voici une fonction (j'ai pas testé mais ça ressemble a ça)

void lectureFichier( struct voiture **v)
{

FILE *fichier;

        fichier=fopen("NomFichier","r");
    if(fichier==NULL)
        printf("le fichier n'existe pas\n");

while(!feof(fichier))
    {
    aux=((struct voiture *) malloc(sizeof(struct voiture));
    fscanf(fichier,"%d""%f""%s""%s",&(aux->puissance),&(aux->prix),&(aux->marque),&(aux->modele));
    if(*v==NULL){
        *v=cour=aux;
    }
    else
     {
         cour->suivant=aux;
         cour=cour->suivant;
     }
     cour->suivant=NULL;
    }
fclose(fichier);
}
0