许多C++书籍都包含这样的示例代码......
std::cout << "Test line" << std::endl;
Run Code Online (Sandbox Code Playgroud)
......所以我也一直这样做.但我已经看到很多来自像这样的开发人员的代码:
std::cout << "Test line\n";
Run Code Online (Sandbox Code Playgroud)
是否有技术上的理由偏爱另一个,或者仅仅是编码风格的问题?
在C++入门书中,在第(1)章中,它提到了以下内容:
endl是一个特殊的值,称为操纵器,当写入输出流时,具有向输出写入换行符并 释放与该设备关联的缓冲区的效果.通过浏览缓冲区,我们确保用户将立即看到写入流的输出.
在这里"冲洗缓冲区"是什么意思?
根据 的定义endl,它用于插入换行符并刷新流。我记得如果插入新行,则缓冲区将自动刷新。如果是这样,为什么endl在插入新行后仍然需要刷新流。