如何清除 ostringstream

发布于 2024-10-21 23:29:02 字数 308 浏览 4 评论 0原文

ostringstream s;

s << "123";
cout << s.str().c_str() << endl;

// how to clear ostringstream here?
s << "456";
cout << s.str().c_str() << endl;

输出是:

123
123456

我需要:

123
456

如何重置 ostringstream 以获得所需的输出?

ostringstream s;

s << "123";
cout << s.str().c_str() << endl;

// how to clear ostringstream here?
s << "456";
cout << s.str().c_str() << endl;

Output is:

123
123456

I need:

123
456

How can I reset ostringstream to get desired output?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

静赏你的温柔 2024-10-28 23:29:02
s.str("");
s.clear();

第一行需要将字符串重置为空;第二行需要清除可能设置的任何错误标志。如果您知道没有设置错误标志或者您不关心重置它们,那么您不需要调用 clear()

通常,使用新的 std::ostringstream 对象而不是重用现有对象会更容易、更干净、更直接(直接?),除非代码用于已知的性能热点。

s.str("");
s.clear();

The first line is required to reset the string to be empty; the second line is required to clear any error flags that may be set. If you know that no error flags are set or you don't care about resetting them, then you don't need to call clear().

Usually it is easier, cleaner, and more straightforward (straightforwarder?) just to use a new std::ostringstream object instead of reusing an existing one, unless the code is used in a known performance hot spot.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文