std::string umwandeln



  • Ich bin leider schon wieder auf ein Problem gestossen, fuer das ich partout keine Loesung finde. Ich habe im Forum gesucht und gegoogelt mit dem Ergebnis, dass ich nicht der einzige mit diesem Problem bin. Nur eine Loesung fehlt mir bisher ....

    Ich lese also via "getline" zeilenweise Daten aus einem Textfile in die Variable "line" ein, welche als "string" definiert ist. Da es sich bei diesen Werten tatsaechlich aber um Zahlen handelt, wuerde ich den Inhalt der Variablen "line" nun gerne nach int oder aehnlich umwandeln, nur wie mache ich das?

    Unter C sollte das wohl mit atoi() gehen, aber das scheint es unter C++ nicht zu geben. Ich habe schon alles Moegliche probiert, kriege aber immer nur eine Fehlermeldung in der Art von "cannot convert ‘std::string’"

    Hier mal auszugsweise mein Code:

    // reading a text file
    #include <stdlib>
    #include <iostream>
    #include <fstream>
    #include <string>
    
    using namespace std;
    
    int main () { 
      string line;
    .
    .
     (myfile,line);
    .
    

    Ist vermutlich wieder ganz einfach, aber ich sitze dennoch seit Stunden an diesem Problem.

    Nun ja, aller Anfang ist bekanntlich schwer ....

    Gruss

    Guenther



  • FAQ-Artikel "Einmal Zahl nach String und zurück"

    MfG SideWinder



  • guck dir lexical_cast an ^^

    oder einfach:

    std::string test("12345");
    std::istringstream ss(test);
    unsigned int dest;
    ss >> dest;
    if (!ss) std::cerr << "\"" << test << "\" invalid type!" << std::endl;
    

    ...



  • Danke Euch!

    Aber ich seh' schon, ich muss noch viel lernen .... 🙂



  • Nochmals ein grosse DANKESCHOEN! Mit diesem Codefragment und Dank Eurer tollen Hilfe klappt es jetzt einwandfrei:

    string AlsString(line);
      char* StopPosition = 0;
      double d = strtod(AlsString.c_str(), &StopPosition);
      cout << d << endl;
    

    Gruss

    Guenther


Anmelden zum Antworten