gpt4 book ai didi

c++ - 如何清除(字符串)流上的所有粘性操纵器?

转载 作者:行者123 更新时间:2023-11-30 01:47:48 25 4
gpt4 key购买 nike

我正在以通常的方式清除 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::hexstd::setfill 等)。

有没有办法重置整个 std::stringstream,包括任何 IO 操纵器?还是我必须单独手动重置每个操纵器(希望在此过程中不要忘记任何一个)?

最佳答案

显然在 C++11 中应该可以交换字符串流:

if(some_condition_to_reset_stringstream) {
std::ostringstream().swap(ss);
}

不幸的是,我没有支持此功能的编译器 (g++ 4.8.2),因此我无法测试这是否会清除粘性操纵器(我不明白为什么不应该这样做,一旦实现)。

仍在寻找替代方案,因为我的编译器不支持它:)

关于c++ - 如何清除(字符串)流上的所有粘性操纵器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31157711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com