我是一名编程新手,昨天开始自学,我已经掌握了很多东西,但说实话,我不太理解以下两者之间的区别:
std::cout << x;
并且
std::cout << x << std::endl;
没有人向我解释过这个,我希望保险起见问一下。
我是一名编程新手,昨天开始自学,我已经掌握了很多东西,但说实话,我不太理解以下两者之间的区别:
std::cout << x;
并且
std::cout << x << std::endl;
endl
写入一个换行符到流中,所以随后的输出将出现在下一行。它还会刷新流的缓冲区,通常会导致速度变慢。
这种刷新意味着99%的情况下,endl
都是一个错误,你应该只写"\n"
(或'\n'
)而不是使用endl
。当你真正需要刷新流时,我认为更好的做法是显式地调用std::flush
:
std::cout << x << '\n' << std::flush;
就运行时操作而言,这与使用std::endl
等效,但在表明您的意图方面,它要明显得多。
std::cout << "type your name:";
,在尝试从std::cin
获取输入之前,默认情况下不需要使用endl
或flush
,因为它们是"绑定"流并自动处理。 - Tony Delroystd::endl
会向流中添加一个换行符,并刷新输出缓冲区,而std::cout << x
只是打印x
。
因此,如果你得到了一段代码
cout << 5;
cout << 5;
它将会是
55
作为输出,但如果您在第一个cout
中添加endl
,输出将为
5
5
我真正推荐的是使用'\n'
,它比endl更好。
printf
的包装器来记录日志,而不是流。 - KABoissonneault