Bonjour, comment convertir un std::string en double? J'ai essayer avec un static_cast sans succès...
![]()
Bonjour, comment convertir un std::string en double? J'ai essayer avec un static_cast sans succès...
![]()
Ca fonctionne pas mon truc
En faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 template <class T> std::string Util::ToStr(const T & value) { std::ostringstream oss; oss << value; return oss.str(); }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double offset = Util::ToStr(dialog->GetOffset().mb_str()); // retourne un const char*
cannot convert `std::basic_string<char, std::char_traits<char>, std::allocator<char> >' to `double' in initialization
essaye de faire :
En faisant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 template <class T> bool Util::ToStr(std::string & str, const T & value) { std::istringstream iss(str); return iss >> value != 0; }
toi, tu faisait un flux de sortie et non un flux d'entree!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 double offset = Util::ToStr(dialog->GetOffset().mb_str()); // retourne un const char*
Je fais maintenant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 double offset; Util::FromStrToAny(dialog->GetOffset().mb_str(), offset);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 template <class T> static bool FromStrToAny(const std::string&, T&) template<class T> bool FromStrToAny(const std::string & str, T & out ) { // créer un flux à partir de la chaîne donnée std::istringstream iss( str ); // tenter la conversion vers Dest return iss >> out != 0; }
Et au linkage ca plante en me disant:
[Linker error] undefined reference to `bool Util::FromStrToAny<double>(std::string const&, double&)'
est-ce normal que le ";" de ta declaration n'y soit pas???Envoyé par vdumont
Partager