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