在C++中"\n"和endl的区别_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > 在C++中"\n"和endl的区别

在C++中"\n"和endl的区别

 2011/9/2 8:03:47  YuHuang.Neil  http://yuhuang-neil.iteye.com  我要评论(0)
  • 摘要:在输出时,遇到行结束符endl才刷新缓冲区,因此使用行结束符endl,会在回车换行的同时清理缓冲区,endl做了两件事情。因为endl在执行换行时还调用了cout的成员函数flush(),该方法会输出缓冲区中的所有数据并且刷新缓冲区。在编译器的include目录中ostream.h文件,可以看到endl的原型:inline_CRTIMPostream&__cdeclendl(ostream&_outs){_outs<<"\n"<<flush;
  • 标签:c++ 区别
在输出时,遇到行结束符endl才刷新缓冲区,因此使用行结束符endl,会在回车换行的同时清理缓冲区,endl做了两件事情。因为endl在执行换行时还调用了cout的成员函数flush(),该方法会输出缓冲区中的所有数据并且刷新缓冲区。


在编译器的include目录中ostream.h文件,可以看到endl的原型:

inline _CRTIMP ostream& __cdecl endl(ostream& _outs){
    _outs<<"\n"<<flush;
}


从上面的代码中可以清晰地看出,函数除了执行"\n"之外还执行了flush函数,也就是说,endl比"\n"要多了一项“刷新”流里的缓冲区的flush操作。


发表评论
用户名: 匿名