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;
    

Anmelden zum Antworten