Lecture dans un fichier et conversion avec std::istringstream
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.
J'y parviens en utilisant ce code :
Code:
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;
} |
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é.
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