Bonjour,

Dans une classe de type T j' ai une méthode qui convertit une string en types simples. Cela marche pour tous les types char, short, int, float, double, long double, sauf pour ...les string !

Exemple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
template < typename T >
class A 
{  T g_val ;
    public :
    ...
    ...
 void  setValue( const std::string& s )
  { std::istringstream is( s );
    is  >>  g_val ;  
  }
 
} ;
La convertion de string vers string s' arrête dès l' espace rencontré aprés les caractères.

Par exemple :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
A<std::string> A( "hello world" ) ;   =>ok normal
 
A.setValue("toto") ; ok 
 
mais 
 
A.setValue( "bonjour monde") ; erreur seul "bonjour" est traduit.
Pourtant l' appel à std::istringstream.str() renvoît bien la chaîne entière.
Comment faire pour forcer le flux à renvoyer tous les caractères qu' il contient, y compris les espaces ?

Cordialement.