Récupérer des valeurs depuis un fichier text

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

7 réponses

cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
13 août 2010 à 14:54
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
13 août 2010 à 15:24
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
3
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
13 août 2010 à 14:13
Ç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
0
sokpassy85 Messages postés 64 Date d'inscription lundi 28 avril 2008 Statut Membre Dernière intervention 25 novembre 2014
13 août 2010 à 14:49
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
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:04
Salut,

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

Merci,

Ibrahima
0
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:18
Salut,

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

Merci.

Ibrahima
0
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
Salut,

ça fonctionne.

Merci.

Ibrahima
0
Rejoignez-nous