Problem mit stringstream
-
truebool schrieb:
(bla.str()) war der erste fehler stringstreams haben keine funktion str nur c_str();
mhhnee, 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