Problem mit stringstream



  • bin ich wohl wie immer zu spät
    warum geh ich auch noch was essen 😞

    #include <iostream>
    #include <string>
    
    using namespace std;
    
    int main ()
    {
    
    string ip;
    string exec("ping ");
    
    cout<<"IP eingeben: ";
    cin>>ip;
    exec+=ip;
    
    system(exec.c_str());
    getchar();
    return 0;
    }
    

    (bla.str()) war der erste fehler strings haben keine funktion str nur c_str(); 😉
    mhh

    edit 1: danke doc @meine strings 😉



  • truebool schrieb:

    (bla.str()) war der erste fehler stringstreams haben keine funktion str nur c_str(); 😉
    mhh

    nee, str() macht aus einem stringstream ein string. c_str() liefert zu einem string den char-pointer.



  • nee, str() macht aus einem stringstream ein string. c_str() liefert zu einem string den char-pointer.

    sorrrrrrrrrryyyy
    manno meine nicht stringstream sondern string... 🙄



  • Danke alle zusammen. 😃



  • Problem bei deinem ersten Programm war wahrscheinlich, dass bla nur das Wort "ping" enthielt, oder?
    Das liegt daran, dass der operator>> nur bis zu einem Withespace ausgibt (und das kommt genau nach dem ping)
    In deinem Fall haette es besser heissen muessen:

    getline(exec, bla);
    


  • Also habe jetzt wieder ein Problem und zwa klappt das mit dem += nicht so ganz.
    Habe mal ein Beispiel gemacht. Beim letzten printf soll eigendlich "ei wurst Korn Kümmel" rauskommen aber das tut es nicht. Bitte helft mir ⚠

    #include <iostream>
    #include <sstream>
    #include <string>

    using namespace std;

    int main()
    {
    string bla1;
    string bla2;
    string bla3;
    string bla4;

    bla1 = "ei ";
    bla2 = "wurst ";
    bla3 = "Korn ";
    bla4 = "Kümmel ";

    bla1+=bla2;
    printf("%s\n",bla1.c_str());
    bla1+=bla2+=bla3;
    printf("%s\n",bla1.c_str());
    bla1+=bla2+=bla3+=bla4;
    printf("%s\n",bla1.c_str());

    }



  • Beim letzten printf soll eigendlich "ei wurst Korn Kümmel" rauskommen

    nö, es sollte eiwurstwurstkornwurstkornkornkümmel rauskommen, denn bla1 += bla2 ist ja das gleiche wie bla1 = bla1 + bla2, also eine Zuweisung, die bla1 verändert...wenn du was andres gemeint haben solltest, dann sag genauer was nicht funktioniert

    Mfg, smasher1985



  • Und wie muss ich es schreiben damit "ei wurst Korn Kümmel" rauskommt ?



  • #include <iostream> 
    #include <string> 
    
    using namespace std; 
    
    int main() 
    { 
    string bla1 = "ei ", bla2 = "wurst ", bla3 = "Korn ", bla4 = "Kümmel "; 
    
    bla1 += bla2 + bla3 + bla4; 
    
    cout << bla1;
    
    return 0;
    }
    


  • post scriptum:
    um Kümmel auch wirklich als Kümmel ausgeben zu können:

    bla4 = "K\x81mmel";  // ü = \x81
    

    😃



  • Werds mal versuchen


Anmelden zum Antworten