如何清除(字符串)流上的所有粘性操纵器
How to clear all sticky manipulators on (string)stream?
我正在以通常的方式清除std::stringstream
:
std::ostringstream ss;
for(...; ...; ...) {
... // Use ss.
if(some_condition_to_reset_stringstream) {
ss.str(std::string());
ss.clear();
}
... // Use ss some more.
}
不幸的是,这并不能清除任何粘性操纵器(std::hex
、std::setfill
等)
有没有办法重置整个std::stringstream
,包括任何IO操纵器?或者我必须单独手动重置每个操纵器(希望在这个过程中不要忘记任何一个)?
显然,在C++11中应该可以交换字符串流:
if(some_condition_to_reset_stringstream) {
std::ostringstream().swap(ss);
}
不幸的是,我没有支持这一点的编译器(g++4.8.2),所以我无法测试这是否会清除粘性操纵器(我不明白为什么它一旦实现就不应该清除)。
仍在寻找替代方案,因为我的编译器不支持它:)
相关文章:
- 警告处理为错误这里有什么问题
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 2D数组来自文本输入,中间有空格
- 函数向量_指针有不同的原型,我可以构建一个吗
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 当在同一名称空间中有两个具有相同签名的函数时,会发生什么
- 有根的二进制搜索树.保留与其父级的链接
- 在计算中使用二的幂有多有利可图
- 有什么方法可以遍历结构吗
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 有符号的int和int-有没有一种方法可以在C++中区分它们
- 有充分的理由在h文件中使用include保护而不是cpp文件吗
- 有一个打印语句的函数是一种糟糕的编程实践吗
- 是否有任何操纵器将枚举值打印为字符串?
- Golang操纵函数中是否有一些方法,例如std :: bind在C 中
- 粘性操纵器 C++ 14.
- 粘性自定义流操纵器
- 是否有粘性操纵器的官方资源?
- 如何清除(字符串)流上的所有粘性操纵器
- 如何实现自动添加分隔符的自定义粘性操纵器