Bonjour,
J'essaie de lire le contenu d'un fichier texte dont le contenu ressemble à ceci :
Pour chaque ligne je voudrais récupérer les deux valeurs dans deux variables de type int.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 12 45 5 78 2 6
J'y parviens en utilisant ce code :
Le seul "problème" est que je déclare un istringstream à chaque itération, ce qui ne me semble pas très propre ni optimisé.
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 #include <iostream> #include <fstream> #include <sstream> using namespace std; int main(int argc, char **argv) { string nomFichier = "test1.txt"; ifstream fichier(nomFichier.c_str(), ios::in); string ligne; int first, second; while(getline(fichier, ligne)) { cout << ligne << "\t=>\t"; istringstream ss(ligne); ss >> first >> second; cout << first << "\t" << second << endl; ss.str().clear(); } fichier.close(); return 0; }
Pouvez-vous m'indiquer comment modifier ce code pour ne créer un qu'un seul istringstream et le réinitialiser avec la nouvelle ligne à chaque passage dans la boucle ?
Je précise que je suis débutant en C++ et que j'ai trouvé un message, ici, qui semble répondre à ma question, mais je n'ai pas réussi à mettre en oeuvre la solution indiquée.
Merci d'avance
Partager