Problème avec la classe istringstream
Bonsoir à tous.
Je m'amuse à écrire un petit programme pour évaluer des expressions arithmétiques écrite en notation polonaises. Les expressions sont contenues dans un fichier. Une ligne = une expression.
La première tâche que j'éffectue est de récupérer une expression depuis le fichier et d'en identifier les différents facteurs. J'utilise à cet effet les classes std::string et std::istringstream.
J'arrive à identiifer les éléments de la première ligne, mais après je n'arrive pas à faire de même pour les autres lignes.
Voici le code.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| #include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string buffer;
string item;
istringstream ss;
int i = 1;
while(getline(cin, buffer)) {
cout << "line " << i << endl;
cout << buffer << endl;
ss.str(buffer);
while(ss >> item)
cout << item << endl;
i++;
}
return 0;
} |
Voici le contenu du fichier de test
Et j'obtiens comme résultat
Code:
1 2 3 4 5 6 7 8 9
| line 1
+ 3 4
+
3
4
line 2
- x x
line 3
* - 6 + x |