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 fichier texte (mot par mot et ligne par ligne) en C++


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2011
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Lecture fichier texte (mot par mot et ligne par ligne) en C++
    Bonjour, je suis nouveau sur le forum, je suis étudiant en terminale scientifique, et par passion, je me suis mis à coder en C++.

    J’essaie de lire un fichier texte mot / mot et ligne par ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    fichier.txt:
    or feu bottes épée
    argent eau tongues hache
    cuivre feu aucun arc
    et j'aimerais stocker dans 4 tableaux différents les premiers, 2è, 3è et 4è mots de chaque ligne en fonction de l'élément (feu, terre, eau, air).

    pour le moment je n'arrive qu'à lire une ligne avec le code suivant:

    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
    43
    44
    45
    46
    47
    48
    49
    #include <iostream>
    #include <string>
    #include <fstream>
    #include <vector>
    #include <Perso.h>
     
    using namespace std;
     
    void lecture_remplissage(vector<Perso>& feu, vector<Perso>& terre, vector<Perso>& air, vector<Perso>& eau)
    {
        ifstream fichier;
        string metal, element, chaussure, arme;
        fichier.open("text.txt", ios::in);
        if(fichier)  // si l'ouverture a réussi
        {
            fichier >> metal>> element>> chaussure>> arme;
            Perso P1 (metal, element, chaussure, arme);
     
            if(element=="feu")
            {
                feu.push_back(P1);
                cout<<"Et un perso feu de plus. "<<endl;
            }
            if(element=="eau")
            {
                eau.push_back(P1);
                cout<<"Et un perso eau de plus. "<<endl;
            }
            if(element=="terre")
            {
                terre.push_back(P1);
                cout<<"Et un perso terre de plus. "<<endl;
            }
            if(element=="air")
            {
                air.push_back(P1);
                cout<<"Et un perso air de plus. "<<endl;
            }
            if(element!="air" && element!="terre" && element!="eau" && element!="feu")
            {
                cout<<"Erreur: categorie non reconnue. "<<endl<<endl;
            }
            fichier.close();
        }
        else
        {
               cout << "Erreur: Ouverture fichier impossible !" << endl;
        }
    };
    Pouvez vous m'aider pour lire les lignes suivantes ? en utilisant la boucle while( !fichier.eof() ) {} je n'arrive qu'à lire la première ligne en boucle..

    Je vous en remercie d'avance.

    Petitou.

  2. #2
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Salut

    Tu peux utiliser la fonction libre std::getline pour faire cela.
    Find me on github

  3. #3
    Membre régulier
    Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Janvier 2011
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2011
    Messages : 114
    Points : 113
    Points
    113
    Par défaut
    Citation Envoyé par petitou Voir le message

    J’essaie de lire un fichier texte mot / mot et ligne par ligne.
    Bonjour,

    Comme l'indique jblecanard :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    string ligne;
     
    while (getline(fichier, ligne)){	/* Lecture des données ligne par ligne */ 
    	fichier >> donnee1 >> donnee2 >> ... ;
            ton_vector1.push_back(donnee1); etc...
    }
    Bonne continuation

Discussions similaires

  1. Lecture fichier texte ligne par ligne
    Par LinuxUser dans le forum C++
    Réponses: 7
    Dernier message: 14/01/2013, 15h27
  2. Réponses: 1
    Dernier message: 23/04/2010, 11h34
  3. [VB6] Lecture fichier texte - Probleme virgule = saut de ligne
    Par Zaal dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 13/09/2006, 08h16
  4. Lecture fichier texte avec un nombre de lignes à ignorer
    Par TravelMate dans le forum Langage
    Réponses: 20
    Dernier message: 02/08/2006, 11h59
  5. [VB.NET] lecture fichier texte et détection des mots
    Par zouhib dans le forum Windows Forms
    Réponses: 25
    Dernier message: 01/06/2006, 09h12

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