Bonjour tout le monde,
Je post car j'aurais besoin d'un peu d'aide sur l'extraction de valeurs dans un fichier texte.
J'ai donc un fichier texte qui se constitue comme suit :
Puissance moteur [kW] : 3200
Rendement moteur : 0.87
Débit [m3/h] : 50000
...
Je voudrais récupérer les valeurs en fin de phrase. N'y arrivant pas j'avais pensé d'abord mettre les ":" à la même distance sur chaque ligne histoire d'aller récupérer la valeur juste après un nombre de caractères précis. D'où le code suivant :
Bien évidemment en faisant ça je tourne en rond car je reviens sans arrêt au début du fichier.
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 #include <iostream> #include <fstream> #include <string> using namespace std; int main() { ifstream base("D:/Utilisateurs/monNom/Desktop/test.txt"); if (base) { string ligne; while (getline(base,ligne)) { base.seekg(23, ios::beg); double valeur; base >> valeur; cout << valeur << endl; } } else { cout << "Ouverture impossible !" << endl; } return 0; }
Je me pose donc deux questions :
1- Comment lui dire de passer à la ligne suivante ?
2- Pour le moment comme dans l'exemple, je mets tous les ":" en tant que 23 eme caractère de chaque ligne pour aller chercher le nombre après. N'y aurait-il pas une solution plus simple consistant simplement à aller chercher le seul nombre de chaque ligne ? En gros j'arrange mon fichier texte comme suit :
Puissance moteur [kW] : 3200
Rendement moteur------: 0.87
Débit [m3/h]----------: 50000
...
Merci d'avance pour votre aide.
Bonne journée,
Cdlt.
Partager