Wie kann ich ein CString zu einem Doppel in C ++ konvertieren?
-
06-09-2019 - |
Frage
Wie kann ich eine CString
zu einem double
in C ++ konvertieren?
Unicode-Unterstützung wäre auch schön.
Danke!
Lösung
kann ein CString
auf ein LPCTSTR
wandeln, die im Grunde ein const char*
ist (const wchar_t*
in Unicode aufbaut).
Mit diesem Wissen können Sie verwenden, atof()
:
CString thestring("13.37");
double d = atof(thestring).
... oder für Unicode-Versionen, _wtof()
:
CString thestring(L"13.37");
double d = _wtof(thestring).
... oder unterstützen sowohl Unicode und Nicht-Unicode-Versionen ...
CString thestring(_T("13.37"));
double d = _tstof(thestring).
(_tstof()
ist ein Makro, das entweder atof()
oder _wtof()
erweitert basierend darauf, ob oder nicht _UNICODE
definiert ist)
Andere Tipps
Sie können konvertieren etwas zu etwas ein std::stringstream
verwenden. Die einzige Voraussetzung ist, dass die Betreiber >>
und <<
umgesetzt werden. Stringstreams kann in der <sstream>
Header-Datei gefunden werden.
std::stringstream converter;
converter << myString;
converter >> myDouble;
mit der Boost-lexical_cast Bibliothek, die Sie tun
#include <boost/lexical_cast.hpp>
using namespace boost;
...
double d = lexical_cast<double>(thestring);