gpt4 book ai didi

c++ - std::endl 和 '\n' 有什么区别

转载 作者:行者123 更新时间:2023-12-03 06:55:51 26 4
gpt4 key购买 nike

我读过 std::endl 之间的区别和 '\n'是那个std::endl刷新缓冲区并 '\n'没有。不过,据我所知stdout在 Linux 上无论如何都是行缓冲的,这是否意味着 std::cout << ... << std::endlstd::cout << ... << '\n'相同?

最佳答案

std::ostream os;

os << std::endl; // more concise

os << '\n' << std::flush; // more explicit about flushing

这两行具有完全相同的效果。

手动冲洗通常是在浪费时间:

  • 如果输出流是行缓冲的,std::cout 应该是这种情况,如果它连接到交互式终端,实现可以检测到,然后打印 \n 已经刷新。

  • 如果输出流与您之后直接读取的输入流配对(std::coutstd::cin 配对),则读数已经刷新。

  • 如果您没有人等待数据到达目的地,那么刷新将再次成为浪费。

关于c++ - std::endl 和 '\n' 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64253865/

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