[英]Difference between `cout << x` and `cout.operator<<(x)` and `operator(std::cout, x)`?
[英]what is the diffrence between std::cout<< x ; and std::cout<<x<<std::endl;?
我是编程的新手,我昨天开始自学,我已经得到了所有东西,但老实说,我不明白它们之间的区别
std::cout << x;
和
std::cout << x << std::endl;
没有人向我解释这一点,我要求保持安全。
endl
将新行写入流,因此后续输出将显示在下一行。 它还会刷新流的缓冲区,通常会导致速度变慢 。
这种刷新意味着99%的时间, endl
是一个错误,你应该只写"\\n"
(或'\\n'
)。 当你真的想要刷新流时,我认为最好通过调用std::flush
来使其显式化:
std::cout << x << '\n' << std::flush;
就运行时操作而言,这相当于使用std::endl
,但就使你的意图清晰而言,它是非常优越的。
std::endl
为流添加换行代码并刷新输出缓冲区, std::cout << x
只是打印x
。 所以,如果你有一个代码
cout << 5;
cout << 5;
这将是
55
作为输出,但如果你将endl
添加到第一个cout
,输出将是
五
五
我真正推荐你的是使用'\\n'
它比endl更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.