\ n和std :: endl有什么区别

时间:2013-10-08 10:52:44

标签: c++ newline std

今天我的answer已修改,std::endl已更改为\n

\n有什么优势吗?

3 个答案:

答案 0 :(得分:4)

std::endl调用flush流而cout << "\n"不会刷新流,因此cout << "\n";会获得更好的效果,尤其是在循环调用时。

§27.7.3.8标准basic_ostream操纵器

namespace std {
template <class charT, class traits>
basic_ostream<charT,traits>& endl(basic_ostream<charT,traits>& os);
}
1 Effects: Calls os.put(os.widen(’\n’)), then os.flush().

答案 1 :(得分:0)

是的,它不会冲洗流,这可能是一个巨大的时间负担。

答案 2 :(得分:0)

\n终止该行。 std::endl终止行并刷新输出缓冲区。在大多数情况下,不断刷新输出缓冲区只会浪费时间。