C ++恢复流fmtflags

时间:2015-07-05 23:04:10

标签: c++

避免永久修改流的fmtflags是一种好习惯吗?

例如,我写的函数

std::ios_base::fmtflags flags = std::cout.setf(std::ios_base::boolalpha);

开头和

std::cout.setf(flags);

在结束之前。

我应该这样做吗?假设多个不相关的函数使用相同的流并需要不同的格式化选项。

1 个答案:

答案 0 :(得分:2)

是的,似乎不言而喻的是,将流保存在您找到它的状态(与格式化标志有关)在一般情况下是一件好事。

您是否应该在特定情况下实际执行此操作完全取决于其他组件使用相同的流以及它们对它的期望。