维基百科上的拼写错误 input/output 个示例

Typo on wikipedia input/output examples

我正在阅读维基百科的以下内容example

#include <iostream>

int main()
{
    std::cout << "Hello, world!\n";
    return 0;
}

文章内容如下:

This program would output "Hello, world!" followed by a newline and standard output stream buffer flush.

我认为这是不正确的,因为 '\n' 不需要 std::flush

我应该继续编辑文章,将 '\n' 更改为 std::endl 吗?

不,程序正常终止时会刷新标准输出。 (如果一个简单的 "Hello, world" 程序 异常终止 ,您可能对此无能为力。)不过,您可能想澄清这一点(刷新发生在程序结束,而不是在 std::cout << ... 调用上)。

并且 return 0; 是不必要的(但无害)。

默认情况下,cout 流与 C 库的 stdout 流同步(即它们将共享相同的缓冲区)。并且 C 标准指定 stdout 在写入交互式设备时将进行行缓冲或非缓冲。

这意味着默认情况下,如果输出是交互式设备(例如控制台),cout 将在打印 \n 时刷新。如果你调用 std::cout.sync_with_stdio(false),它可能不再刷新。

除此之外,如其他答案所述,输出将在程序终止时刷新。