你如何清除stringstream变量?

c++ stringstream

346954 观看

9回复

18201 作者的声誉

我已经尝试了几件事,

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

两者都不起作用。

作者: CodingWithoutComments 的来源 发布者: 2008 年 8 月 21 日

回应 9


34

18201 作者的声誉

m.str("");

似乎工作。

作者: CodingWithoutComments 发布者: 2008 年 8 月 21 日

721

21241 作者的声誉

决定

对于所有标准库类型,成员函数empty()是查询,而不是命令,即它意味着“你是空的吗?” 不要“请丢掉你的内容”。

所述clear()成员函数从继承ios和用于清除流的错误状态,例如,如果一个文件流具有设定为错误状态eofbit(结束文件),则调用clear()将设置错误状态返回goodbit(无差错) 。

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

m.str("");

是正确的,虽然使用:

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

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

作者: Wilka 发布者: 2008 年 8 月 21 日

-10

21 作者的声誉

这些不会丢弃gnu c ++中stringstream中的数据

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

以下为我清空stringstream:

    m.str().clear();
作者: John 发布者: 2012 年 9 月 6 日

32

329 作者的声誉

无论编译器如何,这应该是最可靠的方式:

m=std::stringstream();
作者: jerron 发布者: 2012 年 10 月 11 日

10

882 作者的声誉

我的2美分:

这似乎对我有用xcode和dev-c ++,我有一个菜单形式的程序,如果根据用户的请求迭代执行将填充一个stringstream变量,这将在第一次代码时正常工作运行,但下次用户运行相同的代码时不会清除字符串流。但是下面的两行代码最后在填充字符串变量之前每次清除stringstream变量。(2小时的试用和错误以及谷歌搜索),顺便说一句,使用每一行都不能做到这一点。

//clear the stringstream variable

sstm.str("");
sstm.clear();

//fill up the streamstream variable
sstm << "crap" << "morecrap";
作者: Francisco Cortes 发布者: 2013 年 10 月 18 日

12

149 作者的声誉

我总是在考虑它:

{
    std::stringstream ss;
    ss << "what";
}

{
    std::stringstream ss;
    ss << "the";
}

{
    std::stringstream ss;
    ss << "heck";
}
作者: TimoK 发布者: 2014 年 3 月 26 日

42

16852 作者的声誉

您可以清除错误状态并在一行中清空stringstream

std::stringstream().swap(m); // swap m with a default constructed stringstream

这有效地将m重置为默认构造状态

作者: Nikos Athanasiou 发布者: 2014 年 4 月 24 日

0

11 作者的声誉

这是一个概念性问题。

Stringstream是一个流,所以它的迭代器是前向的,不能返回。在输出字符串流中,您需要flush()来重新初始化它,就像在任何其他输出流中一样。

作者: Alcino Dall Igna Junior 发布者: 2014 年 10 月 10 日

0

21 作者的声誉

在C ++中,我们一起使用这两个语句来清除stringstream变量。

string_stream_varaible.str("");         
string_stream_varaible.clear();

这是示例代码:

stringstream res("hello");
res.str("");
res.clear();

快乐的编码!

作者: Priyanshu Tiwari 发布者: 2019 年 8 月 29 日
32x32