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 :

Extraire des données d'un fichier .txt


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut Extraire des données d'un fichier .txt
    Bonjour à vous tous. J'ai depuis quelque temps un problème pour extraire des données numériques d'un fichier txt. Le problème c'est que le programme n'extrait pas les données contenu dans le fichier txt. La seul chose qu'il extrait sont des 0. Merci de votre aide.

    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
    bool RecupererDonnees(vector<double>& p_s_nombres)
    	{
    	cout << "Veuillez entrer le nom du fichier: \n";
    	string nomFichier;
    	getline(cin, nomFichier);
    	cout << "Veuillez ensuite entrer son extension: \n";
    	string extension;
    	getline(cin, extension);
     
    	string fichier= nomFichier + '.' + extension;
    	ifstream ficNombres(fichier.c_str());
     
    	if ( ! ficNombres.is_open())
    		return false;
     
    	double nombre;
    	ficNombres >> nombre;
    	ficNombres.ignore();
     
    	p_s_nombres.resize(nombre);
     
    	for (int i= 0; i != p_s_nombres.size(); ++i)
    		DeserialiserNombre(ficNombres, p_s_nombres[i]);
     
    	return true;
    	}
     
    void DeserialiserNombre(ifstream& p_es_fic, double nombre)
    	{
    	p_es_fic >> nombre;
    	p_es_fic.ignore();
    	}
    Voici le contenu de mon fichier txt:

    7
    4
    3
    8
    1
    4
    7
    7
    7
    8
    8
    5
    5
    1
    4
    5
    6
    7
    8

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 064
    Points : 1 053
    Points
    1 053
    Par défaut
    Enlève les deux appels à la méthode ignore().

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 174
    Points
    1 174
    Par défaut
    essaye comme ça:

    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
     
    #include <fstream>
    #include <vector>
    #include <iostream>
     
    typedef std::vector< double > DoubleVec;
     
    bool recupereDonnees( DoubleVec & nombres, 
                          const std::string & fichier )
    {
        std::ifstream file( fichier.c_str() );
        if( !file )
        {        
            return false;
        }
     
        double d;
        while( file >> d )
        {
            nombres.push_back( d );
        }
     
        return true;
    }
     
    int main()
    {
        DoubleVec doubles;
        recupereDonnees( doubles, "test.txt" );
     
        for( DoubleVec::iterator ite = doubles.begin();
             ite != doubles.end();
             ++ite )
        {
            std::cout << *ite << std::endl;
        }
     
        return 0;
    }

  4. #4
    Nouveau membre du Club
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    46
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 46
    Points : 26
    Points
    26
    Par défaut
    Merci à vous Nikko34, toute marche numéro 1 maintenant.

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

Discussions similaires

  1. extraire des données d'un fichier .txt
    Par granbapt dans le forum C
    Réponses: 6
    Dernier message: 09/08/2012, 12h39
  2. [AC-2003] extraire des données d'un fichier txt en VBa
    Par afifaNancy dans le forum VBA Access
    Réponses: 8
    Dernier message: 24/04/2012, 16h41
  3. Extraire des données d'un fichier txt dans un vecteur
    Par sam14 dans le forum Entrée/Sortie
    Réponses: 9
    Dernier message: 22/02/2012, 12h56
  4. [Débutant] Besoin d'extraire des données d'un fichier txt
    Par Paul.R dans le forum MATLAB
    Réponses: 24
    Dernier message: 09/12/2009, 18h20
  5. Réponses: 7
    Dernier message: 29/09/2005, 10h19

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