Bonjour à tous,
je suis en première année d'informatique et j'ai probléme à un de mes TP. Le programme que je doit faire à pour but de trouver les chiffres dans une chaine de caractére et de les mettre dans un conteneur. Voici le code que je veux compiler :
Code :
#include <set>
#include <iostream>
et j'obtient les erreurs suivantes:
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 std::set<int> queLesChiffres(std::string & chaine ) { std::set<int> ensChiffre; unsigned int pos=0; for ( pos=0 ; pos != chaine.size() ; pos++ ) { if ( isdigit(chaine.at(pos))) { ensChiffre.insert(chaine.at(pos)); } } return ensChiffre; } void listerLesChiffres(std::set<int> & ens1) { std::set<int>::const_iterator it; for ( it = ens1.begin() ; it != ens1.end() ; it++ ) { std::cout<<(*it)<<std::endl; } return; } void test() { std::string chaineProg; chaineProg+=("1Prog0ramma34tion3"); listerLesChiffres(queLesChiffres( chaineProg )); return; } int main() { test(); return 0; }
-tp1.cpp: In function ‘void test()’:
-tp1.cpp:32: error: invalid initialization of non-const reference of type ‘std::set<int, std::less<int>, std::allocator<int> >&’ from a temporary of type ‘std::set<int, std::less<int>, std::allocator<int> >’
-tp1.cpp:18: error: in passing argument 1 of ‘void listerLesChiffres(std::set<int, std::less<int>, std::allocator<int> >&)’
Je n'arrive vraiment pas à trouver la cause de ces erreurs ! Alors si quelqu'un peut m'aider je suis preneur !!
Merci d'avance.
Partager