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 :

lecture dans un fichier de donnée avec "reconstruction de liste chainée"


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 110
    Points : 57
    Points
    57
    Par défaut lecture dans un fichier de donnée avec "reconstruction de liste chainée"
    bonjours,

    alors je veux lire dans mon fichier de donnée au début du programme pour "chargé" la liste chainée. la liste se reconstruit bien mais lors de l'affichage, cela affiche bien la liste mais en mettant des espaces et retour a la ligne n'importe comment et la dernière ligne il m'écrit n'importe quoi on dirait que le buffer est pas clean, je pense que sa doit venir d'un \n mais pas sur.
    voici le code pour la 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
    22
    23
    24
    25
    26
    27
     
       encourt = malloc(sizeof(livre));
       debut = encourt;
     
       fgets(encourt->titre,46,fdat);
        while(!feof(fdat))
        {
            fgets(encourt->auteur,21,fdat);
     
            fgets(encourt->genre,21,fdat);
            fgets(encourt->dateDeParution,11,fdat);
     
            if(feof(fdat))
            {
                encourt->suivant = NULL;
            }
            nb++;
           //allocation dynamique de la memoire pour l'attribut suivant du second maillon
            suivant = malloc(sizeof(livre));
            //l'adresse suivant du second maillon pointe vers le maillon suivant
            encourt->suivant = suivant;
            //on travail avec le maillon suivant
            encourt = suivant;
     
            fgets(encourt->titre,46,fdat);
     
        }
    voici le code de l'ecriture :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                encourt=debut;
                for(i=0;i<nb;i++)
                {
                    printf("%-45s   \n%-20s   \n%-20s   \n%-10s\n\n",encourt->titre,encourt->auteur,encourt->genre,encourt->dateDeParution);
                    encourt = encourt->suivant;
                }
    enfin je vous met un screenshot du résultat :


    merci une fois ce problème résolu j'aurai grandement avancé
    Images attachées Images attachées  

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 110
    Points : 57
    Points
    57
    Par défaut
    voila le problème est résolu cela provenait bel et bien d'un \n je laisse le code si cela peut être utile a quelqu'un.

    voila ce que j ai rajouter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    for(i=0;i<11;i++)
            {
                if(encourt->dateDeParution[i] == '\n')
                {
                    encourt->dateDeParution[i]=' ';
                }
            }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 05/02/2014, 11h01
  2. Lecture dans un fichier avec lseek
    Par Maria1505 dans le forum Linux
    Réponses: 8
    Dernier message: 24/02/2007, 12h29
  3. [SQL] Importer un fichier .sql dans une base de données avec PHP
    Par budiste dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 23/06/2006, 14h15
  4. Réponses: 20
    Dernier message: 25/09/2005, 15h07
  5. Réponses: 12
    Dernier message: 14/06/2004, 13h06

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