首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用str(const char*)设置std::stringstream的内容会产生奇怪的后果

使用str(const char*)设置std::stringstream的内容会产生奇怪的后果
EN

Stack Overflow用户
提问于 2015-06-18 02:24:23
回答 1查看 3.7K关注 0票数 20

我广泛使用std::stringstream来生成代码。在使用operator<<之后使用str()函数设置内容时,我遇到了一些查询行为。有人能给我解释一下这种行为吗。我会非常感激的-谢谢。

示例一:

代码语言:javascript
复制
std::stringstream ssa;
ssa.str("Setting string");
std::cout << ssa.str() << std::endl;
ssa << " adding to string";
std::cout << ssa.str() << std::endl;

输出:

设置字符串

添加到字符串

期望值:

设置字符串

设置字符串添加到字符串

因此,在阅读了一些文档之后,我发现应该将打开模式设置为ios_base::ate

代码语言:javascript
复制
std::stringstream ssb(std::ios_base::ate);
ssb.str("Setting string");
std::cout << ssb.str() << std::endl;
ssb << " adding to string";
std::cout << ssb.str() << std::endl;

输出:

设置字符串

设置字符串

再一次(或现在),我希望:

设置字符串

设置字符串添加到字符串

为什么我会得到我想要的结果,我怎样才能得到我想要的结果?E.i.能够设置stringstream的初始string和附加到该string的吗?

我知道我可以只将内容设置为空的string(""),然后只使用<<operator。这实际上是我正在使用的变通方法。我只是不理解观察到的行为。这个变通方法让我的代码变得更加凌乱。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30899464

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档