Récupérer des valeurs depuis un fichier text [Résolu]

Signaler
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
-
Bonjour,
Je souhaite récupérer des mesures contenues dans un fichier texte. J'ai fait ce bout de programme pour la récupération et l'affichage des valeurs. Mais rien ne s'affiche après exécution du programme.

Savez vous pourquoi.

Merci,

N.B.: format du fichier.

nom rang mesures
. . .
. . .
. . .

Ibrahima


#include <cstdlib>
#include
#include
#include <fstream>

using namespace std;

int main()
{
std::ifstream file("MesureV1.txt");

if(!file)
{
std::cerr << "Impossible d'ouvrir le fichier " << std::endl;
return 1;
}
std::string nom;
int rang;
double mesureV1;
while (file >> nom >> rang >> mesureV1)
{
std::cout << nom << "" << rang << "" << mesureV1 << std::endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}

7 réponses

Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
107
C'est normal. Le flux va s'arrêter à la première erreur trouvée.
Or, tu essaie de lire "nom rang mesureV1" soit "std::string std::string std::string" alors que tu as indiqué "std::string int double".
Il faut simplement que tu ignores la première ligne.
Soit tu fais: file >> nom >> nom >> nom;, soit tu fais un std::getline pour ignorer tes titres.

Ensuite, tu as une deuxième erreur: La séparation des décimales est le point '.' et non la virgule ','.

Si tu corriges cela, tout devrait fonctionner.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
107
Tu ajoutes une variables de type double que tu initialises à 0.
Tu ajoutes (+=) à celle-ci toute les valeurs rencontrées.

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
3813
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
12 juin 2020
107
Ça fonctione très bien chez moi avec:

Fichier MesureV1.txt

pouet 5 4.6
poue 6 2.9
pet 7 5.98


Source:
#include 
#include <fstream>

int main()
{
  std::ifstream file("MesureV1.txt");

  if(!file)
  {
    std::cerr << "Impossible d'ouvrir le fichier " << std::endl;
    return 1;
  }

  std::string nom;
  int rang;
  double mesureV1;
  while (file >> nom >> rang >> mesureV1)
  {
    std::cout << nom << " " << rang << " " << mesureV1 << std::endl;
  }

  return 0;
}


Comme dit dans des précedents post, évite les "using namespace std"...

________________________________________________________________________
Historique de mes créations, et quelques articles:[ http://0217021.free.fr/portfolio
http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

Salut,

Merci d'abord. Mon fichier comme suit:

nom rang mesureV1
M1 1 0,103938
M2 2 0,0612703
M3 3 0,0385554
M4 4 0,0268127
M5 5 0,0208447
M6 6 0,0158002
M7 7 0,0121003
M8 8 0,00938576
M9 9 0,0069025
M10 10 0,00571265

C'est différent du tien? Tes colonnes n'ont pas d'intitulé.
J'ai fait pareil que toi mais rien ne s'affiche.

J'ai supprimé les "namespace std".

Merci encore une fois.

Ibrahima
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

Salut,

Désolais, je n'ai pas attention à ça. Ça marche maintenant. Ça ne m'arrivera plus.

Merci,

Ibrahima
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

Salut,

Je voulais les additionner maintenant. Tu as une idée pour faire la somme de la colonne mesure?

Merci.

Ibrahima
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014

Salut,

ça fonctionne.

Merci.

Ibrahima