istringstream liefert falschen Wert



  • Hi,

    ich benutze zum umwandeln eines Strings in einen Integer die Klasse istringstream aus <sstream>. Dabei wird die Member-Funktion str() zweimal hintereinander aufgerufen. Der erste Wert ist korrekt, allerdings stimmt der zweite Wert nicht. Folgenden Code habe ich:

    istringstream isst;
    while(ret == 1)
    {
    ...
    		else if (node.compare("node") == 0)
    		{
    			isst.str(read_option(reader, node));
    			isst >> ref_driver.node;
    		}
    		else if (node.compare("force") == 0)
    		{
    			isst.str(read_option(reader, node));
    			isst >> ref_driver.force;
    		}
    ...
    }
    

    Sowohl der Wert für driver.node als auch für driver.force sollte 1 sein. Für driver.node stimmt er, aber nicht für driver.force. Dort steht dann eine 0. Nehme ich für beide Werte eine extra Variable istringstream so stimmen beide Werte. Auch ein Leeren mittels isst.str(""); hat nicht geholfen. Was kann ich tun um nur eine istringstream-Variable zu benutzen und trotzdem die richtigen Werte zu erhalten?

    mfg chuqa



  • isst.clear();



  • hmm, hätte ich ja auch selber drauf kommen können.

    ich danke recht herzlich 😉

    mfg chuqa


Anmelden zum Antworten