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 :

[Débutant]Récupérer des données dans un fichier textes


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut [Débutant]Récupérer des données dans un fichier textes
    J'ai pris le tutorial duy site pour récupérer une ligne dans un fichier texte:
    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
    #include <string>
    #include <fstream>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        // le constructeur de ifstream permet d'ouvrir un fichier en lecture
        std::ifstream fichier( "E:\\mateo\\ensea\\projet genoptics\\IHM\\scripts\\configuration.txt" );
     
        if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
        {
            std::string ligne; // variable contenant chaque ligne lue
     
            // cette boucle s'arrête dès qu'une erreur de lecture survient
            while ( std::getline( fichier, ligne ) )
            {
                // afficher la ligne à l'écran
                std::cout << ligne << std::endl;
            }
        }
        system("PAUSE");//Pour windows
    	return 0;
    }
    Mais je voudrais récupérer les chaines de caractères séparées par un espace. Comment qu'on fait?

  2. #2
    Membre éprouvé
    Inscrit en
    Mai 2005
    Messages
    130
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 130
    Par défaut
    Cette méthode me parait bien, mais ou je chope ce deuxième include??:
    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
    50
    51
    #include <iostream>
    #include <boost/tokenizer.hpp>
     
    // découpe la chaine avec les séparateurs par défaut
    void split( const std::string & Msg )
    {
        // utiliser le tokenizer par défaut
        boost::tokenizer<> tok( Msg );
     
        // itérer la séquence de tokens
        for ( boost::tokenizer<>::const_iterator i = tok.begin();
              i != tok.end();
              ++i )
        {
            // afficher chaque token extrait
            std::cout << *i << '\n';
        }
    }
     
    // découpe la chaine selon les séparateurs donnés
    void split( const std::string & Msg, const std::string & Separators )
    {
        // typedef pour alléger l'écriture
        typedef boost::tokenizer<boost::char_separator<char> > my_tok;
     
        // séparateur personnalisé
        boost::char_separator<char> sep( Separators.c_str() );
     
        // construire le tokenizer personnalisé
        my_tok tok( Msg, sep );
     
        // itérer la séquence de tokens
        for ( my_tok::const_iterator i = tok.begin();
              i != tok.end();
              ++i )
        {
            // afficher chaque token extrait
            std::cout << *i << '\n';
        }
    }
     
    int main()
    {
        std::cout << "-- exemple 1 --\n";
     
        split( "mot1;mot2;   ;mot3;;mot4;mot5;" );
     
        std::cout << "-- exemple 2 --\n";
     
        split( "mot-compose1;mot,compose2;[mot][compose3];mot compose4;<mot><compose><5>", ";" );
    }

  3. #3
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Par défaut
    Mais je voudrais récupérer les chaines de caractères séparées par un espace. Comment qu'on fait?
    std::getline prend un séparateur en troisième paramètre optionnel.

    Cette méthode me parait bien, mais ou je chope ce deuxième include??:
    Chez boost (www.boost.org).

    Note que tu peux également mettre sur pied un split plus complet que getline, et ne nécessitant pas de bibliothèque externe. Il doit y avoir un lien dans la FAQ.

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

Discussions similaires

  1. [XL-2013] Récupérer des données dans un fichier text rangé en colonne et les exporter dans excel
    Par kikimarabou dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 20/04/2015, 13h08
  2. Récupérer des données dans un fichiers texte
    Par pitizone dans le forum Word
    Réponses: 1
    Dernier message: 10/04/2014, 15h49
  3. Récupérer des données dans un fichier texte a part.
    Par morora69 dans le forum Général JavaScript
    Réponses: 40
    Dernier message: 17/06/2010, 09h54
  4. récupérer des données dans un fichier
    Par pymouse dans le forum Langage
    Réponses: 7
    Dernier message: 19/06/2006, 17h43
  5. Réponses: 3
    Dernier message: 22/02/2004, 20h09

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