IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

listes et fichiers


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations forums :
    Inscription : Juin 2012
    Messages : 1
    Par défaut listes et fichiers
    j'ai écrit ces deux fcts pour copier une liste dans un fichier mais quand je lance le prg il se bloque dans la dernière ligne ! svp aidez moi
    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    void liste_fichier(lst* produ,FILE *f1){
     
        while(produ!=NULL){
     
                            fputs(produ->p->code,f1); fputs(";", f1);
                            fputs(produ->p->designation,f1);fputs(";",f1);
                            fprintf(f1,"%d;%d",produ->p->pht,produ->p->qte);fputs("\n",f1);
                            produ=produ->suivant;
     
     
                        }
    }
     
     
    void fichier_liste(FILE * f1){
    char nom[100];
    lst *lprod=(lst *)malloc(sizeof(lst));
    lst *tmp=(lst *)malloc(sizeof(lst));
    fgets(nom,sizeof nom,f1);
     
       lprod->p->code=strtok(nom,";");
       lprod->p->designation=strtok(NULL,";");
       lprod->p->pht=strtok(NULL,";");
       lprod->p->qte=strtok(NULL,";");
       tmp=lprod;
       lprod=lprod->suivant;
     
     
    while(! feof(f1)){
    fgets(nom,sizeof nom,f1);
     
       lprod->p->code=strtok(nom,";");
       lprod->p->designation=strtok(NULL,";");
       lprod->p->pht=strtok(NULL,";");
       lprod->p->qte=strtok(NULL,";");
       puts(lprod->p->pht);
       lprod=lprod->suivant;
     
    }
    liste_fichier(tmp,f1);
     
    }

  2. #2
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Dans fichier_liste()
    lprod->suivant est non initialisé et contient n'importe quoi. On va aller ensuite dans les décors.

    Ceci ne permet pas de construire une liste. Il faut utiliser une fonction d'insertion dans la liste (faite ou à faire) lorsqu'on a lu les données d'un élément.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 840
    Billets dans le blog
    1
    Par défaut
    Salut

    Tu ne fais qu'un seul malloc alors que tu as plein d'éléments à stocker...

    Le principe de base d'insertion d'élément dans une liste chainée est celui-ci
    1) allocation mémoire pour un élément
    2) remplissage de l'élément avec les valeurs qu'il doit stocker
    3) placement de l'élément (de son adresse en fait) au bon endroit dans la liste

    Familiarise-toi avec les listes chainées (plein de tutos dont un ici) puis reprends ton code...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. [JSP] liste de fichiers dans une appli web
    Par cyrso dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/01/2005, 17h17
  2. Réponses: 7
    Dernier message: 19/09/2004, 22h01
  3. Liste de fichiers et de répertoires
    Par Freakazoid dans le forum C++
    Réponses: 4
    Dernier message: 09/08/2004, 17h16
  4. liste des fichiers d'un répertoire
    Par am dans le forum C
    Réponses: 3
    Dernier message: 04/08/2003, 17h03
  5. [Kylix] Liste des fichiers d'un répertoire
    Par Houben Jacques dans le forum EDI
    Réponses: 3
    Dernier message: 30/11/2002, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo