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 :
La convertion de string vers string s' arrête dès l' espace rencontré aprés les caractères.
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 ; } } ;
Par exemple :
Pourtant l' appel à std::istringstream.str() renvoît bien la chaîne entière.
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.
Comment faire pour forcer le flux à renvoyer tous les caractères qu' il contient, y compris les espaces ?
Cordialement.
Partager