Ich habe ein Verständnisproblem mit C++ iostream.
1 | long size;
|
2 | string s1,s2,s3,s;
|
3 | s1="0123456789\nabcdefghij\nabc";
|
4 | s2="abcdefghij";
|
5 |
|
6 |
|
7 | ostringstream out;
|
8 | istringstream in;
|
9 | in.str(s1);
|
10 | s1="jk";
|
11 | out.str(s2);
|
12 |
|
13 | in.seekg(0, ios::end);
|
14 | size = in.tellg();
|
15 | in.seekg(0, ios::beg);
|
16 |
|
17 |
|
18 |
|
19 | while (in.tellg()<size) {
|
20 | getline(in, s);
|
21 | out << s << "\n";
|
22 | out.flush();
|
23 | }
|
24 | s2=out.str();
|
Dieses Beispiel ist zwar nicht besonders sinnvoll, aber was ich
eigentich will ist folgendes. In der Zeile
in.str(s1);
soll der String als input stream verwendet werden. Wie es aussieht, wird
dabei der Inhalt von S1 in das Object "in" kopiert. Zumindest ändert
sich nichts am in-stream, wenn ich S1 überschreibe.
Gleiches in andere Richtung.
out.str(S2);
auch wenn ich was nach out schreibe
out << "hallo";
kann ich das nicht in der Variable S2 sehen. Erst wenn ich
S2=out.str();
aufrufe, wird der stream Inhalt von out nach S2 kopiert.
Nun meine Frage: Ist es möglich, die Variablen direkt als Stream Buffer
zu verwenden? Ich meine, dass ich in der Variable S2 immer den aktuellen
Inhalt von "out" sehe?