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

SL & STL C++ Discussion :

Lecture de nombre en notation scientifique dans un fichier


Sujet :

SL & STL C++

  1. #1
    sdx
    sdx est déconnecté
    Membre régulier Avatar de sdx
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 106
    Points : 90
    Points
    90
    Par défaut Lecture de nombre en notation scientifique dans un fichier
    Bonjour à tous,

    la réponse à mon problème est sans doute très simple. Je ne parviens cependant pas à trouver pourquoi je n'arrive pas, avec le code suivant, à lire un fichier de nombres flottants en notation scientifique (un par ligne, par exemple "1.0E2")

    Erreur : le programme m'indique immédiatement une erreur de formatage (dès la ligne 1, control = 0 alors qu'il devrait être non nul, et fe.fail() est true)

    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
    #include <iostream>
    #include <fstream>
    #include <cmath>
     
    #include <cstdlib>
    #include <cstring>
     
    using namespace std;
     
    main(int n, char *params[])
    {
    	ifstream fe;
    	double control;
    	...
     
    	fe.open("in.acc.txt", ios::in);
     
    	if(!fe.is_open())
    	{
    		cerr << "Impossible d'ouvrir 'in.acc.txt', vérifiez le fichier." << endl;
    		return 1;
    	}
     
    	i = 0;
    	while(fe.good())
    	{
    		fe >> control ;
    		i++;
    	}
     
    	if(!fe.eof())
    	{
    		cerr << "Erreur de lecture (ligne " << i << ") : ";
    		if(fe.bad())  cerr << " lecture/ecriture." << endl;
    		if(fe.fail()) cerr << " formatage." << endl;
    		return 1;
    	}
     
    	...
     
    }
    Si je demande de lire des strings et de me les afficher à l'écran, tout se passe très bien, et les strings affichées sont bien celles du fichier de données.

    Merci pour votre aide !

    sdx

  2. #2
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 196
    Points : 17 165
    Points
    17 165
    Par défaut
    Bonjour,
    tu as essayé avec fe >> std::scientific >> f;?

  3. #3
    sdx
    sdx est déconnecté
    Membre régulier Avatar de sdx
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 106
    Points : 90
    Points
    90
    Par défaut
    Re,

    Oui, j'ai essayé et ça donne exactement la même chose.

    J'ai peut être un indice pour trouver la solution. Si j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	string ligne;
    	fe >> ligne;
    	cout << "\""<< ligne.c_str() << "\"" << endl;
    	cout << "\""<< ligne << "\"" << endl;
    le premier cout m'affiche une string vide, tandis que le second m'affiche le bon contenu du fichier.

  4. #4
    sdx
    sdx est déconnecté
    Membre régulier Avatar de sdx
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 106
    Points : 90
    Points
    90
    Par défaut
    En convertissant mon fichier de UNICODE vers UTF-8, ça marche.

    merci pour ton aide leternel

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

Discussions similaires

  1. Formater un nombre en notation scientifique "personnalisée"
    Par Razgriz dans le forum Général Java
    Réponses: 0
    Dernier message: 28/10/2009, 06h10
  2. Notation scientifique dans la fenêtre Sortie
    Par Lumino dans le forum Débutez
    Réponses: 2
    Dernier message: 25/10/2009, 16h04
  3. Manipuler des nombres en notation scientifique
    Par enrikomic dans le forum Mathématiques - Sciences
    Réponses: 6
    Dernier message: 11/07/2007, 14h14
  4. [TP] Nombre en notation scientifique
    Par barth.pas dans le forum Turbo Pascal
    Réponses: 8
    Dernier message: 30/08/2006, 21h27
  5. [Ressources] Nombre de ressources incluses dans un fichier
    Par Clorish dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 03/06/2005, 16h27

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