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 :

Afficher le contenu d'un fichier ligne par ligne


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut Afficher le contenu d'un fichier ligne par ligne
    Bonsoir,

    2heures que j'essaye...en vain, impossible d'afficher TOUTES les lignes qui sont dans un fichier "test.txt", qui contient par exemple :

    brian is
    in the
    kitchen

    Une idée? :s J'ai réussi à afficher soit juste la première ligne, soit la deuxième et la troisième...et quand je rajoute une quatrième, la troisième ne s'affiche plus, bref c'est le bordel >.>

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    Déjà, les fonctions nécessaires :

    • Pour ouvrir le fichier : fopen, fclose
    • Pour lire ligne par ligne : fgets, puts
    • Pour lire caractère par caractère : fgetc, putchar.


    Peux tu poster ce que tu as fait jusqu'ici ?

  3. #3
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut
    Voila la boucle avec la quelle je lis le fichier et tente d'en afficher le contenu...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while(fgets(ligne, 80, fichier) != NULL)
    {
                fgets(ligne, 80, fichier)
                printf("%s", ligne);
    }

    Et si j'ai un fichier texte qui contient :
    brian
    is in
    the kitchen
    test
    blabla
    123
    456

    Il m'affiche :
    http://www.hostingpics.net/viewer.ph...Sans_titre.jpg

    Certaines lignes "disparaissent"...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Chaque fois que fgets est appelé, une ligne est lue dans le fichier.
    La ligne lue par le fgets appelé dans la commande while n'est donc jamais affichée.

  5. #5
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Par défaut
    Bien oui, c'est normal. Tu fais deux fgets successifs à chaque fois. Du coup, il y a une ligne qui passe à la trappe en permanence.

  6. #6
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut
    Effectivement...ca marche, merci à tous!!

  7. #7
    Membre émérite Avatar de orfix
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2007
    Messages : 707
    Par défaut
    Citation Envoyé par mailbox Voir le message
    Voila la boucle avec la quelle je lis le fichier et tente d'en afficher le contenu...


    <...>
    Dernière modification par mailbox ; Aujourd'hui à 22h54.
    Pourquoi tu as supprimé le code ? cela rend tout simplement ce file de discussion inutile ! j'appelle cela de l'égoïsme tu ne mérites pas l'aide que tu viens de recevoir...

  8. #8
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut
    Parce que c'était un peu ridicule >> Je l'ai remis quand même...

  9. #9
    Membre confirmé Avatar de mailbox
    Profil pro
    Inscrit en
    Février 2010
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2010
    Messages : 140
    Par défaut
    Me revoilà, j'aimerai stocker la ligne du fichier dans un tableau j'ai donc écrit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(fgets(ligne, TAILLE_MAX, fichier) != NULL)
    {
            printf("%s", ligne);
            strcpy(tableau[i],ligne);
            i++;
    }

    Je compile, et quand je le run :
    http://www.hostingpics.net/viewer.php?id=318308abc.jpg

    J'ai déclaré le tableau et la ligne comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char ligne[80];
    char tableau[80];

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

Discussions similaires

  1. Réponses: 9
    Dernier message: 03/07/2014, 18h08
  2. Opération sur un fichier et lecture ligne par ligne
    Par teunniq dans le forum Shell et commandes GNU
    Réponses: 6
    Dernier message: 03/06/2014, 17h57
  3. lire fichier .txt (NOTEPAD) ligne par ligne
    Par skambram dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/06/2009, 18h41
  4. lire un fichier de string ligne par ligne
    Par bilzzbenzbilz dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 11/02/2009, 10h44
  5. Réponses: 6
    Dernier message: 24/05/2008, 22h22

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