仅手动冲洗 cout
Flush cout manually only
据我所知,将 std::endl
流式传输到 std::cout
会刷新它。我知道这种行为对大多数应用程序都有意义。
我的问题是我有一些使用多个 std::endl
的输出,因此刷新了输出。这对我的程序的性能非常不利,并且还会导致很多图形故障,因为我经常跳来跳去。
所以我的问题是我是否可以告诉 std::cout
等待下一次刷新,直到我明确调用 std::cout.flush()
或将 std::flush
流式传输到 std::cout
.
如果这是可能的,我也想知道我该如何扭转它,因为它对我来说并不总是有意义。
使用 std::cout << '\n'
而不是 std::endl
。这避免了在每一行之后刷新。 std::endl
将始终刷新,因为这是它的目的。没有禁用该行为的选项。但是,根本不需要使用 std::endl
。最终,您无法避免所有刷新,因为 std::cout
的缓冲区是有限的,因此最终,无论您使用 std::endl
还是 '\n'
.
,输出都会被刷新
如果你想增加标准输出的缓冲区大小,你可以尝试 increase buffer for cout。
据我所知,将 std::endl
流式传输到 std::cout
会刷新它。我知道这种行为对大多数应用程序都有意义。
我的问题是我有一些使用多个 std::endl
的输出,因此刷新了输出。这对我的程序的性能非常不利,并且还会导致很多图形故障,因为我经常跳来跳去。
所以我的问题是我是否可以告诉 std::cout
等待下一次刷新,直到我明确调用 std::cout.flush()
或将 std::flush
流式传输到 std::cout
.
如果这是可能的,我也想知道我该如何扭转它,因为它对我来说并不总是有意义。
使用 std::cout << '\n'
而不是 std::endl
。这避免了在每一行之后刷新。 std::endl
将始终刷新,因为这是它的目的。没有禁用该行为的选项。但是,根本不需要使用 std::endl
。最终,您无法避免所有刷新,因为 std::cout
的缓冲区是有限的,因此最终,无论您使用 std::endl
还是 '\n'
.
如果你想增加标准输出的缓冲区大小,你可以尝试 increase buffer for cout。