wostringstream convert to string



  • Hallo leute,

    ich habe etwas programmiert und nun suche ich eine elegante Möglichkeit meinen wostringstream variable in eine string variable zu überführen:

    Mein Code mit dem ich die einzelnen Bytes der Devices überführe lautet wie folgt:

    for(int i=0; i<6; i++){
        tmp<<hex<<m_device_info.Adress.rgBytes[i];
        if (i<5)
         tmp<<L":";
     }
    

    Dabei ist mein tmp von Datentyp wostringstream.

    lg



  • nun suche ich eine elegante Möglichkeit meinen wostringstream variable in eine string variable zu überführen

    Bitte nochmal erklären, was du willst.
    Auf Anhieb denke ich an das:

    std::wstring wstr = tmp.str();  
    
    // Oder was willst du? std::string?
    // Das ginge so:
    std::string str(wstr.begin(), wstr.end()); 
    // Achtung, kann zu Überläufen führen, da du wahrscheinlich Zeichen in deinem Stringstream hast die ein char nicht repräsentieren kann
    


  • Das war genau meine Idee, aber wenn ich das nun in meine ListBox überführen will, bekomme ich einige Fehlermeldungen.

    Mein Ziel: tmp in meine listbox bei WinForms zu überführen.

    Mein Vorgehen:

    for(int i=0; i<6; i++){
        tmp<<hex<<m_device_info.Adress.rgBytes[i];
        if (i<5)
         tmp<<L":";
     }
    
     listBox2->Items->Add(tmp.str());
    

    Meine Fehlermeldung:

    "error C2664:'System::Windows::Forms::ListBox::ObjectCollection::Add' convert 'wchar_t' in 'system::object ^' not possible"

    lg



  • Das ist nicht C++, oder? 🙄


Anmelden zum Antworten