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

Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
- - Dernière réponse : sokpassy85
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
- 13 août 2010 à 15:38
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;
}
Afficher la suite 

7 réponses

Meilleure réponse
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 191 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cptpingu
Messages postés
3801
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 novembre 2019
90
0
Merci
Ç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
Commenter la réponse de cptpingu
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
0
Merci
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
Commenter la réponse de sokpassy85
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
0
Merci
Salut,

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

Merci,

Ibrahima
Commenter la réponse de sokpassy85
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
0
Merci
Salut,

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

Merci.

Ibrahima
Commenter la réponse de sokpassy85
Messages postés
64
Date d'inscription
lundi 28 avril 2008
Statut
Membre
Dernière intervention
25 novembre 2014
0
Merci
Salut,

ça fonctionne.

Merci.

Ibrahima
Commenter la réponse de sokpassy85