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)
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.
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; } ... }
Merci pour votre aide !
sdx
Partager