如何清除流字符串的缓冲区
How to clear the buffer of a streamstring?
我在两个循环中有一个streamstring,它正在烧录我的RAM。那么,如何正确地清除蒸汽串的缓冲区呢?简化如下:
stringstream ss (stringstream::in | stringstream::out);
for()
{
for()
{
val = 2;
ss << 2;
mystring = ss.str();
// my stuff
}
// Clear the buffer here
}
它写了2,然后是22,然后是222……我试过.clear()或.flush(),但不是这样。那么我是怎么做到的呢?
显而易见的解决方案是每次使用一个新的stringstream
,例如:
for (...) {
std::stringstream ss;
for (...) {
// ...
}
}
这就是stringstream
的设计使用方式。(还有:你真的想要stringstream
,还是只想要ostringstream
?)
当您想要清除多余的字符时设置ss.str("");
(编辑:谢谢)。
如果流在之前的转换过程中设置了任何错误标志,请使用.clear()
。
如果使用C++0x:
ss.swap(stringstream());
Visual Studio 2010(SP1)支持它。
如果您不使用C++0x:
ss.seekp(0);
ss.seekg(0);
ss.str("");
ss.clear();
它不会清除内存,但您可以使用stringstream
对象,因为它以前是空的。
相关文章:
- 如何使用字符串find_first_of缓冲区形式(size_t n 参数)
- Qt PL/SQL - 赋值运算符 - 字符串缓冲区太小
- 清除输入缓冲区后未提取字符串流
- 协议缓冲区字符串字段的文本编码
- 如何避免将数据缓冲区的额外副本复制到字符串?
- 在 node.js 中将缓冲区从 C++ 转换为 UTF-8 字符串
- 将指针作为缓冲区传递到第一个字符串元素
- 为什么在调用C#DLL时不需要提供字符串缓冲区
- 如何在C++中对静态缓冲区执行字符串格式化?
- 自动截断和 null 终止缓冲区溢出中的字符串缓冲区
- 使用字符串缓冲区文件名更改OFStream的目录
- 如何编写高效的字符串缓冲区
- 包装字符串缓冲区
- 字符串缓冲区如何导致运行恶意代码
- 缓冲区已满时清除字符串缓冲区.这是什么图案
- 为什么_splitpath_s()使用自定义大小的字符串缓冲区来返回驱动器号
- Cassandra cppdriver查询字符串缓冲区溢出
- 为二进制数据创建字符串缓冲区的最佳方法
- 将文件读入字符串缓冲区并检测 EOF
- C++DLL中的线程安全字符串缓冲区变量