Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
ostream重载中的缓冲区刷新 在C++中重载OFFASH时缓冲区冲洗的推荐方法是什么?我是否只是在开始时禁用缓冲区刷新,然后在结束时启用它?如果是这样,我应该在返回ostream之前刷新缓冲区吗?我从未在任何ostream重载参考中提到过这一部分。 编_C++ - Fatal编程技术网

ostream重载中的缓冲区刷新 在C++中重载OFFASH时缓冲区冲洗的推荐方法是什么?我是否只是在开始时禁用缓冲区刷新,然后在结束时启用它?如果是这样,我应该在返回ostream之前刷新缓冲区吗?我从未在任何ostream重载参考中提到过这一部分。 编

ostream重载中的缓冲区刷新 在C++中重载OFFASH时缓冲区冲洗的推荐方法是什么?我是否只是在开始时禁用缓冲区刷新,然后在结束时启用它?如果是这样,我应该在返回ostream之前刷新缓冲区吗?我从未在任何ostream重载参考中提到过这一部分。 编,c++,C++,ostream重载中的缓冲区刷新 在C++中重载OFFASH时缓冲区冲洗的推荐方法是什么?我是否只是在开始时禁用缓冲区刷新,然后在结束时启用它?如果是这样,我应该在返回ostream之前刷新缓冲区吗?我从未在任何ostream重载参考中提到过这一部分。 编辑:假设我有一个有很多成员的班级。ostream操作符打印每个成员。我应该如何编写ostream重载 struct ToPrint { char firstMember; char secondMember; int number; }; s

ostream重载中的缓冲区刷新 <>在C++中重载OFFASH时缓冲区冲洗的推荐方法是什么?我是否只是在开始时禁用缓冲区刷新,然后在结束时启用它?如果是这样,我应该在返回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;
}
struct-ToPrint{
第一名成员;
第二名成员;
整数;
};

STD::OrStand运算符> P>推荐的缓冲区冲洗用于C++中的输出流是不做的。除非您有特殊要求,否则流的默认行为将正常工作。

What?,为什么您不能只执行std::endl或其他操作?我不是问如何刷新缓冲区,我是问是否应该为写入的每一行刷新缓冲区。一般的经验法则是在缓冲区已满、关闭或指示刷新时刷新。但是,不同的介质可能需要不同的处理。麻烦你把问题扩展一下,以便更好地描述你的目标和流媒体?你说的“ostream重载”是什么意思?好的,所以你说的是重载
运算符,所以我应该使用“\n”而不是std::endl来尝试防止不必要的刷新。当你写入控制台时,这没有多大区别。它很慢,因为显示器必须绘制所有文本。但如果将输出重定向到文件,所有这些刷新都会降低性能<代码>“\n”
结束一行。这就是所需要的。