daten speichern und ausgeben lassen



  • hi
    ich hab ein paar sachen und möchte sie kurz in eine variable abspeichern.

    zb

    int a = 2;
    int b = 3;
    int c = 8;
    

    und möchte alle zu einem 238 machen, wenns geht und dann ausgeben.

    eine möglichkeit wäre zbsp in eine datei abspeichern und dann wieder den inhalt ausgeben, bringt aber nichts. ich möchte nägmlich nicht in eine datei speichern 😞

    kann mir jemadn bitte ein bisschen helfen?
    danke im vorraus



  • Wie wäre es mit a*100+b*10+c*1 ...?



  • ich will das mit stringstreams machen aber nur wie?
    mfg



  • bhhhhhhhhhhhhh schrieb:

    ich will das mit stringstreams machen aber nur wie?
    mfg

    Wie auch bei cout, und allen anderen Ausgabesteams...

    std::cout << a << b << c;
    

    cu André



  • asc schrieb:

    bhhhhhhhhhhhhh schrieb:

    ich will das mit stringstreams machen aber nur wie?
    mfg

    Wie auch bei cout, und allen anderen Ausgabesteams...

    std::cout << a << b << c;
    

    cu André

    ich meinte nur wie man das in ein stringstream speichern kann und dann wieder ausgeben kann



  • bhhhhhhhhhhhh schrieb:

    ich meinte nur wie man das in ein stringstream speichern kann und dann wieder ausgeben kann

    #include <sstream>
    #include <iostream>
    
    int main( ) {
    
        int a = 2, b = 3, c = 8;
        std::stringstream ss;
    
        ss << a << b << c;
    
        std::cout << ss.str( ) << std::endl;
    }
    

    greetz, Swordfish



  • danke hat geklappt 🙂

    oh hab da ncoch ein problem:
    ich möchte die gespeicherten werte in ein

    vector<char> platz;

    speichern.

    aber wie mach ich das? Mit eine for werd ich das machen oder while, aber leider gibts nicht so eine möglichkeit wie beim vektor:
    platz[anzahl] = ss[anzahl];

    😞

    hoffe dass ihr mihc versteht 😞

    mfg



  • naja, ein stringstream ist ja auch ein stream und kein feld oder vektor. du könntest zum beispiel woas machen:

    stringstream ss;
    vector<char> v;
    // ss füllen
    while(!ss.eof())
    {
      v.push_back(ss.getc());
    }
    

    so in der art, ist aber ungetestet



  • ja aber es müssen zeichen sein. nur kann ich auch nichtmal c_str() benutzen



  • weiß jemand etwas noch?

    mfg



  • 1. Du brauchst Zeichen. Chars sind Zeichen. Wo ist Dein Problem?
    2. c_str() liefert einen Zeiger auf ein konstantes Array, das ist was anderes als "ein Zeichen".

    Fazit: Wir können Dir nicht helfen, weil wir nicht wissen was Du willst.



  • ich möchte alles was sich in der Variable "ss" befindet, in einen vektor kopieren. Also in einzelnen Zeichen(char).



  • so damits verständlicher wird 😉

    #include <sstream> 
    #include <iostream> 
    
    int main( ) { 
    
        char a = 'd', b = 'r', c = 'q'; 
        std::stringstream ss; 
    
        ss << a << b << c; 
    
        std::vector<char> x;
        x.push_back(ss); // Funktioniert leider nicht.
    }
    

    es sollte dann so aussehen:

    x[0] = d
    x[1] = r
    x[2] = q

    mehr will ich auch nicht.

    mfg



  • std::vector<char> x(3);
    x[0] = 'd'; x[1] = 'r'; x[2] = 'q';
    

    ... wofür??



  • (D)Evil schrieb:

    std::vector<char> x(3);
    x[0] = 'd'; x[1] = 'r'; x[2] = 'q';
    

    ... wofür??

    nein nicht direkt zuweisen ... hab ich doch schon oben gesagt,dass ich das aus dem stringstream kopieren will.

    das war doch nur ein beispiel wie es später aussehen soll, also das fettgedruckte.



  • ????

    kann mir bitte jemand helfen?

    mfg



  • gibt es keine lösung??

    mfg



  • ich habs doch gut genug erzählt.

    anscheinend will mir keiner helfen 😞



  • mach aus dem stringstream einen string. dann kannst du entweder mit c_str einen const char* bekommen, das sollte idR reichen; oder du kopierst den string in einen vector (wie du ja unbedingt möchtest):

    string x(stream.str());
    vector v(str.begin(), str.end());
    

    wenn du allerdings wirklich nur einzelne ziffern in den stringstream aneinanderketten willst, dann könntest du die auch direkt in einzelne chars umwandeln (dazu gab's vor kurzem erst einen beitrag hier)

    btw. jede stunde hier nachzufragen, warum dir niemand hilft, ist nur annoying und macht es nicht sehr wahrscheinlich, dass dir jemand hilft. außerdem wurde dir bereits ein lösungsvorschlag gegeben (seite 1).

    in der regel heißt es, wenn niemand antwortet, dass du [1] die frage nicht richtig klar gemacht hast, [2] du schon eine antwort hast und [2.1] vielleicht selbst noch ein bisschen nachdenken solltest oder [2.2] dich als antwort-resistent (aka merkbefreit) erweist, [3] im falschen forum postest.



  • queer_boy schrieb:

    ...

    string x(stream.str());
    vector<char> v(x.begin(), x.end());
    

    ...

    Braucht man x überhaupt ?
    Theoretisch müsste das auch direkt gehen, oder ?

    vector<char> v(stream.str().begin(), stream.str().end());
    

    Gruß,

    Simon2.


Anmelden zum Antworten