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.
Voici le contenu du fichier de test
Code C++ : 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 #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; }
Et j'obtiens comme résultat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 + 3 4 - x x * - 6 + x
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 line 1 + 3 4 + 3 4 line 2 - x x line 3 * - 6 + x
Partager