哎,你仔细想想啊!
你在vc中你点endl上,点右键然后点go to definition of endl;你就会发现什么是endl他的定义直接就写得声明里是这个
inline _CRTIMP ostream& __cdecl endl(ostream& _outs) { return _outs << '\n' << flush; }
这个你就能看出endl是什么了吧,他是输出的\n和flush
那你在想想什么时候才必须加endl呢?
1.当然是需要换行时须输出endl;
2.当然是需要flush时必须输出endl;
至于flush是什么?
Flushes the buffer associated with this stream. The flush function calls the sync function of the associated streambuf.
就是刷新缓冲区!
输出回车并清空缓存。不是必须加,习惯性把它当回车换行用而已。不过你手动输出'\n'换行时没有清空缓存,可能不会立即看到输出结果。
endl只是个换行,不写的话对程序的运行没什么影响的,只是可能美观的问题。后面的分号表示语句结束,必须要的东西哟。
endl意思有两层,一是输出一个换行,二是清除缓冲区
但我还真不知道有哪些必须加它,你能举个例子吗?
cout << endl;
跟
cout << '\n';
一样,就换行作用。