std :: cout&lt;&lt;之间的差异是什么? X ;和std :: cout&lt; <x << std :: endl;?

时间:2016-03-25 00:35:53

标签: c++

=“”

我是编程的新手,我昨天开始自学,我已经得到了所有东西,但老实说,我做的不明白

之间的区别
std::cout << x;

std::cout << x << std::endl;

没有人向我解释这一点,我要求保持安全。

2 个答案:

答案 0 :(得分:11)

endl将新行写入流,因此后续输出将显示在下一行。它还会刷新流的缓冲区,通常为causing a slow-down

此刷新意味着99%的时间endl是错误的,您应该只写"\n"(或'\n')。当你真的想要刷新流时,我认为最好通过调用std::flush来明确这一点:

std::cout << x << '\n' << std::flush;

就运行时操作而言,这相当于使用std::endl,但就明确表达意图而言,它显着优越。

答案 1 :(得分:0)

std::endl向流添加换行符代码并刷新输出缓冲区,而std::cout << x只是打印x。 所以,如果你有一个代码

cout << 5;
cout << 5;

它将是

  

55

作为输出,但如果您向第一个endl添加cout,则输出将为

  

5

     

5

我真正建议您使用'\n'它比endl更好。