Problem mit string zu double Konvertierung via stringstreams
-
Hallo zusammen,
ich habe folgendes Problem:
ich habe eine Datei geparst und die Informationen befinden sich nun in einem std::vectorstd::string.In einem Element des Vektors befindet sich eine Kommazahl (Dezimalstellen durch . abgetrennt) als std::string abgelegt - also zB ist der Inhalt "54.000 |" (die Zahl befindet sich immer zu Beginn des strings) - Diese Zahl soll nun in ein double, um mit ihr sinnvoll arbeiten zu können.
Also hatte ich folgendes vor:double CWTemp = 0.0; std::stringstream ss( v[i].substr(0, v[i].find_first_not_of("0123456789.-") ); ss >> CWTemp;das Problem ist, dass in CWTemp aber weiterhin 0 drinsteht und nicht 54.
Gebe ich den stringstream per cout auf der Konsole aus, kommt aber korrekterweise die Ausgabe:
54.000
Habt ihr eine Idee, wo der Fehler liegt?Compiler ist g++ (gcc 4.2.1)
-
sry Klammer vergessen, muss natürlich so aussehen
double CWTemp = 0.0; std::stringstream ss( v[i].substr(0, v[i].find_first_not_of("0123456789.-") ) ); ss >> CWTemp;
-
Versuchs mal so:
double CWTemp = 0.0; std::stringstream ss(v[i]); ss >> CWTemp;