Bonsoir à tous!
J'avais besoin de "caster" un string appartenant à une classe en int et en suivant la faq j'y suis arrivé:
seulement voila je ne parviens pas à utiliser ce code plusieurs fois consécutivement. Voici la portion de code qui bloque: (m_isstr est un std::istringstream membre d'une classe)
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 std::istream& operator>>(std::istream& istr,CCoord& c) { char col;//les futurs coordonnees int y; //**************************** istr>>col>>y;//Leurs affectations //test aff std::cout<<"x = "<<col<<"\ty = "<<y<<std::endl; int icol; //pour le "cast" du char en int icol=int(col);//***************************** //nouvelle affectation de c c=CCoord(icol-96,y); //col-96 pour transposer sur la valeur numeraire de la colonne std::cout<<"coord: ";c._affiche();std::cout<<std::endl; return istr; }
J'ai essaiyé de "ré-initialiser le istringstream avec .str("") mais rien n'y fait. Je continue de chercher mais si quelqu'un sait...merci.
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 case LONGMVT:std::cout<<"Traitement du LONGMVT"<<std::endl; //repartition des elements de la chaine en plusieurs strings m_scoordo.assign(m_flux,0,2);m_scoordc.assign(m_flux,2,2); //separation des valeurs par un espace m_scoordo.insert(1," ");m_scoordc.insert(1," "); //test aff std::cout<<"m_scoordo : "<<m_scoordo<<"\tm_scoordc : "<<m_scoordc<<std::endl; //on affecte les membres m_coordx via m_isstr (istringstream) m_isstr.str(m_scoordo);m_isstr>>m_coordo; m_isstr.str(m_scoordc);m_isstr>>m_coordc; --> les valeurs extraites içi sont chaotiques. Si je commente la ligne, le code marche...une fois. Puis je me retrouve face au même problème. std::cout<<"Test aff: coord org = ";m_coordo._affiche(); std::cout<<"\tcoord cib = ";m_coordc._affiche(); std::cout<<std::endl; break;
Partager