标签:c++
??
很多C++的初学者都以为endl
只是‘\n‘
换行符的替代者,这是一种片面的看法,因为endl
不仅仅在在输出流中插入了‘\n‘
,而且还有刷新缓冲区的作用。输入输出流会把获取到的数据先存放在缓冲区中,当计算机不忙的时候,会实时地把数据处理掉,这时候‘\n‘
和endl
没有什么太大的区别,当计算机任务繁重的时候,就会默认等到缓冲区被填满,再一块处理掉这些数据,这时候endl
就开始发挥作用,它会告诉计算机立即开始处理缓冲区里的数据。
cout << a ;
cout << b ;
return 0;
比如上面的代码,计算机非常繁忙时,它不会执行完第一行就打印出a的值,也不会在执行第二行代码时,打印出b的值,计算机会等到执行完最后一行代码,程序结束时,或者需要输出的东西太多,把缓冲区填满时,才会一起把a
和b
的值同时打印出来。
cout << a << endl;
cout << b << endl;
return 0;
加上endl
以后,不管计算机有多繁忙,它都会立即把缓冲区里的东西打印出来,清空缓冲区,执行到第一行的时候,就把a
打印出来,执行到第二行的时候,就把b
打印出来。
使用endl
立即清空缓冲区是一个良好的编程习惯,任何时候程序被精确地操作,都比让计算机自动处理来得稳定和安全,在一些要求极高运行效率的环境下,用‘\n‘
也是合理的,一切视情况而定。
标签:c++
原文地址:http://blog.csdn.net/huang8579/article/details/45747789