如何清除字符串流变量?

2024-02-29

我已经尝试过几件事了

std::stringstream m;
m.empty();
m.clear();

两者都不起作用。


对于所有标准库类型的成员函数empty()是一个查询,而不是一个命令,即它的意思是“你是空的吗?”而不是“请扔掉你的东西”。

The clear()成员函数继承自ios用于清除流的错误状态,例如如果文件流的错误状态设置为eofbit(文件结尾),然后调用clear()会将错误状态设置回goodbit(没有错误)。

用于清除a的内容stringstream, using:

m.str("");

是正确的,尽管使用:

m.str(std::string());

从技术上讲更有效,因为您避免调用std::string构造函数需要const char*。但是现在任何编译器都应该能够在这两种情况下生成相同的代码 - 所以我会选择更具可读性的代码。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何清除字符串流变量? 的相关文章

随机推荐