Komisches stringstream/int/string (?) problem...



  • //GesamtKosten:
        iGesamtKosten = (int)stcGesamt.GesamtKosten;
    
        if(iGesamtKosten == 42)
            MessageBox(hWnd, "ist 42...", "iGesamtKosten", MB_OK);
    
        strIntToString << iGesamtKosten;
        strIntToString >> sGesamtKosten;
        sGesamtKosten += " Kosten in Gold";
    
        if(sGesamtKosten.find("42") != string::npos)
            MessageBox(hWnd, "im String wurde 42 gefunden...", "sGesamtKosten", MB_OK);
    
    /* Folgendes Problem: das obere if ist true, folglich ist iGesamtKosten == 42, aber warum das untere nicht? */
    

    Falls ihr weiteren Code braucht sagt bescheid...



  • Ich antworte mir mal selber, ich glaube ich hab das Problem gefunden,...

    es sind mehrere solche

    str << int;
    str >> string;

    und dabei wird immer der gleiche Stringstream benutzt... so funktionierts beim obersten, bei dem danach nicht mehr^^... also für jeden jetzt ein eigener stringstream (str), oder gibts da eine besser Lösung?



  • Hallo,
    füge zwischendurch einfach mal ein str.str("") ein. Das setzt den Stringstream wieder zurück.


Anmelden zum Antworten