Ostream重载中的缓冲区冲洗

时间:2018-11-03 23:42:18

标签: c++

在C ++中重载ostream时,建议使用缓冲区刷新的方法是什么?我是否仅在开始时禁用缓冲区刷新并在最后启用它?如果是这样,我应该在返回ostream之前冲洗缓冲区吗?我从未见过任何ostream重载参考中提到的这一部分。 编辑:可以说我有一堂课,成员很多。 ostream运算符将打印每个成员。我应该如何编写ostream重载?

struct ToPrint {
char firstMember;
char secondMember;
int number;
};

std::ostream& operator<<(std::ostream& os, const ToPrint& instance) {
    os << instance.firstMember << '\n'
        << instance.secondMember << '\n';
    if (instance.number > 0)
        os << instance.number << '\n';
    return os;
}

1 个答案:

答案 0 :(得分:1)

对于C ++中的输出流,建议不要使用缓冲区刷新。除非您有特殊要求,否则流的默认行为将正常工作。