Péreniser une liste dans une fichier

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
Configuration: Windows Vista
Firefox 2.0.0.9

9 réponses

  1. 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
    1. merci de ta reponce mais je sais pas comment le faire,t'as pas un exemple complet ?
      0
      1. 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
        1. 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
          1. 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
            1. merci de ta reponce.je vais essayer avec ça. tu sait comment lire dans ce fichier binaire
              0
              1. c'est presque pareil tu ouvre ton fichier avec le mode "rb" et tu lis ce que tu veux avec la fonction fread
                0
                1. 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
                  1. 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