我已经尝试了几件事,
std::stringstream m; m.empty(); m.clear();
两者都不起作用。
对于所有标准库类型,成员函数empty()是一个查询,而不是一个命令,即它的意思是“你是空的吗?” 不是“请扔掉你的东西”。
empty()
clear()成员函数继承自ios并用于清除流的错误状态,例如,如果文件流的错误状态设置为(eofbit文件结束),则调用clear()会将错误状态设置回goodbit(无错误) .
clear()
ios
eofbit
goodbit
要清除 a 的内容stringstream,请使用:
stringstream
m.str("");
是正确的,虽然使用:
m.str(std::string());
在技术上更有效,因为您避免调用std::string采用const char*. 但是现在任何编译器都应该能够在这两种情况下生成相同的代码——所以我会选择更具可读性的代码。
std::string
const char*