daten speichern und ausgeben lassen
-
bhhhhhhhhhhhhh schrieb:
ich will das mit stringstreams machen aber nur wie?
mfgWie 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?
mfgWie 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 einvector<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] = qmehr 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.
-
Simon2 schrieb:
string x(stream.str()); vector<char> v(x.begin(), x.end());Braucht man x überhaupt ?
str gibt leider nur eine kopie zurück.
string const& x = stream.str();das würde gehen.
-
queer_boy schrieb:
...str gibt leider nur eine kopie zurück....
Aber was wäre verkehrt daran ?
In Deinem ersten Beispiel hättest Du auch nur mit einer Kopie gearbeitet...Gruß,
Simon2.
-
in deinem beispiel gäbe es zwei kopien.