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:
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