gpt4 book ai didi

使用 stringstream::str() 更新后,C++ stringstream 无法正常工作

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:24:09 25 4
gpt4 key购买 nike

我知道 stringstream 可以用 stringstream::str() 更新,但是如果之后我在 stringstream 中输入其他内容,它没有按预期工作。以下片段演示了该现象:

#include <iostream>
#include <string>
#include <sstream>

using namespace std;
int main()
{
stringstream ss; //ostringstream gives the same output
ss << "Original string ";
ss.str("Updated string ");
ss << "sth else";
cout << ss.str() << endl;
}

我希望得到输出

Updated string sth else

但它实际上输出

sth elsestring

它似乎不是在当前字符串的末尾附加新输入的字符串(在我的例子中是 Updated string),而是试图从头覆盖它。我的代码有什么问题?

Here's a live demo

最佳答案

您需要添加 std::ios_base::appopenmode。它确保 stringstream 对象在每次写入之前都查找到流的末尾。试试这个:

stringstream ss(std::ios_base::app|std::ios_base::in|std::ios_base::out);

关于使用 stringstream::str() 更新后,C++ stringstream 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28443740/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com