小编典典

如何清除字符串流变量?

all

我已经尝试了几件事,

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

两者都不起作用。


阅读 135

收藏
2022-03-08

共1个答案

小编典典

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

clear()成员函数继承自ios并用于清除流的错误状态,例如,如果文件流的错误状态设置为(eofbit文件结束),则调用clear()会将错误状态设置回goodbit(无错误)
.

要清除 a 的内容stringstream,请使用:

m.str("");

是正确的,虽然使用:

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

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

2022-03-08