C++ 缓冲区刷新是如何工作的(std::endl和\n之间的区别)?

C++ 缓冲区刷新是如何工作的(std::endl和\n之间的区别)?,c++,C++,所以,我刚刚进入“C++”开发,我想知道std::endl和\n到底有什么不同。我查了一下,我想endl会刷新缓冲区,我相信这意味着它不再被临时存储在内存中,现在被打印成文本文件或终端。不过,我的问题是,您是否也可以将\n用于控制台应用程序,该应用程序正在打印到终端上,并输出相同的结果。我对缓冲和冲洗的解释是否错误?如果是的话,这到底意味着什么 编辑:问题主要是关于\n如果内容仅在刷新后才输出到终端,那么如何在终端中以相同的方式运行 使用std::endl并不是唯一刷新cout的方法 从cin读

所以,我刚刚进入“C++”开发,我想知道std::endl和\n到底有什么不同。我查了一下,我想endl会刷新缓冲区,我相信这意味着它不再被临时存储在内存中,现在被打印成文本文件或终端。不过,我的问题是,您是否也可以将\n用于控制台应用程序,该应用程序正在打印到终端上,并输出相同的结果。我对缓冲和冲洗的解释是否错误?如果是的话,这到底意味着什么


编辑:问题主要是关于\n如果内容仅在刷新后才输出到终端,那么如何在终端中以相同的方式运行

使用
std::endl
并不是唯一刷新
cout
的方法


cin
读取也会导致
cout
缓冲区被刷新,以便在控制台上可以看到提示。默认情况下,流是相互关联的。

您可能还需要注意,
std::flush
也会刷新缓冲区(这是
std::endl
在输出
\n
后在内部执行的操作)。