使用stringstream操作底层字符串对象

Vim*_*mal 2 c++

我是C++的新手,仍然在使用stringstream.我写了一小段代码,但没有提供所需的输出代码如下:

#include "iostream"
#include "sstream"

using namespace std;
int main ()
{
   string xyz;
   cout << "Initial xyz : " << xyz << endl;
   stringstream s1 ( xyz );
   s1 << "Hello";
   cout << "Final xyz : " << xyz << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出:

Initial xyz : 
Final xyz : 
Run Code Online (Sandbox Code Playgroud)

我的理解是stringstream作为字符串对象的包装器.因此一旦stringstream用字符串对象初始化,对流的任何写操作都会影响底层的字符串对象.所以当我写"Hello"来流和打印字符串时xyz,它应该显示"你好".但显然情况并非如此.有人可以告诉我我错在哪里以及如何使用stringstream操纵底层字符串?提前致谢 !VIMAL

Dew*_*wfy 5

它不是包装器.它在里面分配自己的字符串对象.但是你可以分配你的xyz:

s1 << "Hello";
xyz = s1.str();
Run Code Online (Sandbox Code Playgroud)