Hmm das ist relativ simpel. Du verstehst das Prinzip nicht ganz
So wie es aussieht scheint mir als würdest du denken, dass du per Konstruktor (std::stringstream ss(Buffer)) eine String sozusagen verknüpfen kannst. Das ist nicht der Fall
Per std::stringstream::str kannst du dir ein std::string aus dem stream holen.
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
std::ostringstream ss;
const int i(456);
const float f(123.456f);
// Fill
std::cout << "Buffer contains: " << ss.str() << std::endl;
ss << "Hi du ";
std::cout << "Buffer contains: " << ss.str() << std::endl;
ss << 123;
std::cout << "Buffer contains: " << ss.str() << std::endl;
ss << i;
std::cout << "Buffer contains: " << ss.str() << std::endl;
ss << f;
std::cout << "Buffer contains: " << ss.str() << std::endl;
ss << "Ei!";
std::cout << "Buffer contains: " << ss.str() << std::endl;
std::cin.get();
}
|
. Wenn du aber wirklich wissen willst, was im
Buffer der Stringstream Instanz steht, musst du rdbuf() ausgeben
|
C-/C++-Quelltext
|
1
2
3
|
std::ostringstream ss;
ss << 100;
std::cout << ss.rdbuf() << std::endl;
|
. Denn diese Art von Stream arbeitet intern mit einen Buffer (s. z.B. std::fstream => basic_filebuf http://www.dinkumware.com/manuals/default.aspx?manual=compleat&page=fstream.html#basic_filebuf)