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

ssl*_*pie 4 c++

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

std::cout << x;
Run Code Online (Sandbox Code Playgroud)

std::cout << x << std::endl;
Run Code Online (Sandbox Code Playgroud)

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

Jer*_*fin 11

endl将新行写入流,因此后续输出将显示在下一行.它还会刷新流的缓冲区,通常会导致速度变慢.

这种刷新意味着99%的时间endl是错误的,你应该只写"\n"(或'\n').当你真的想要刷新流时,我认为通过调用来改变它是更好的std::flush:

std::cout << x << '\n' << std::flush;
Run Code Online (Sandbox Code Playgroud)

就运行时操作而言,这相当于使用std::endl,但就使您的意图明确而言,它具有极大的优势.

  • 只是一个观察可能会帮助一些读者:如果你想输出某种方式的提示,比如`std :: cout <<"输入你的名字:";`,你没有(默认情况下)需要使用`endl `或`flush`在尝试从`std :: cin`输入之前,因为它们是"绑定"流并自动处理它. (5认同)