我已经尝试过几件事了
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(使用前将#替换为@)