你如何清除stringstream变量?
346954 观看
9回复
我已经尝试了几件事,
std::stringstream m;
m.empty();
m.clear();
两者都不起作用。
作者: CodingWithoutComments 的来源 发布者: 2019 年 9 月 10 日回应 (9)
721像
对于所有标准库类型,成员函数empty()
是查询,而不是命令,即它意味着“你是空的吗?” 不要“请丢掉你的内容”。
所述clear()
成员函数从继承ios
和用于清除流的错误状态,例如,如果一个文件流具有设定为错误状态eofbit
(结束文件),则调用clear()
将设置错误状态返回goodbit
(无差错) 。
用于清除a的内容stringstream
,使用:
m.str("");
是正确的,虽然使用:
m.str(std::string());
在技术上更有效,因为你避免调用所std::string
采用的构造函数const char*
。但是现在任何编译器都应该能够在两种情况下生成相同的代码 - 所以我会选择任何更具可读性的代码。
42像
您可以清除错误状态并在一行中清空stringstream
std::stringstream().swap(m); // swap m with a default constructed stringstream
这有效地将m重置为默认构造状态
作者: Nikos Athanasiou 发布者: 24.04.2014 10:3434像
32像
12像
我总是在考虑它:
{
std::stringstream ss;
ss << "what";
}
{
std::stringstream ss;
ss << "the";
}
{
std::stringstream ss;
ss << "heck";
}
作者: TimoK
发布者: 26.03.2014 05:37
10像
我的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
发布者: 18.10.2013 12:34
0像
这是一个概念性问题。
Stringstream是一个流,所以它的迭代器是前向的,不能返回。在输出字符串流中,您需要flush()来重新初始化它,就像在任何其他输出流中一样。
作者: Alcino Dall Igna Junior 发布者: 10.10.2014 08:040像
在C ++中,我们一起使用这两个语句来清除stringstream变量。
string_stream_varaible.str("");
string_stream_varaible.clear();
这是示例代码:
stringstream res("hello");
res.str("");
res.clear();
快乐的编码!
作者: Priyanshu Tiwari 发布者: 29.08.2019 07:28-10像
这些不会丢弃gnu c ++中stringstream中的数据
m.str("");
m.str() = "";
m.str(std::string());
以下为我清空stringstream:
m.str().clear();
作者: John
发布者: 06.09.2012 10:58
来自类别的问题 :
- c++ 理解指针有什么障碍,克服它们可以做些什么?
- c++ 在C ++中解析INI文件的最简单方法是什么?
- c++ 什么时候应该在C ++中使用“朋友”?
- c++ 你如何清除stringstream变量?
- c++ 在C ++中,构造函数和析构函数可以是内联函数吗?
- c++ 在C ++中,什么是虚拟基类?
- c++ 什么是C / C ++程序及其插件DLL的最佳免费内存泄漏检测器?
- c++ 如何在C ++(Unicode)中将std :: string转换为LPCWSTR
- c++ 常规投放与static_cast与dynamic_cast
- c++ C ++强制转换语法样式
- stringstream 如何清除stringstream?
- stringstream 不允许使用不完整类型:stringstream
- stringstream 使用stringstream时如何停止将double转换为科学计数法
- stringstream 如何将字符串插入到字符串流的开头
- stringstream 为什么stringstream >>在失败时更改目标的值?
- stringstream std :: stringstream vs std :: string用于连接多个字符串
- stringstream 如何从std :: vector <string>构造一个std :: string?
- stringstream 如何重置stringstream对象
- stringstream 意外的字符串流行为