程序让生活更美好

半亩方塘 天光云影

  C++博客 ::  :: 新随笔 :: 联系 ::  :: 管理 ::
  55 随笔 :: 4 文章 :: 202 评论 :: 0 Trackbacks

少用点endl

 

C++给我们提供了一个换行的函数endl函数,不知道该不该叫函数,这个是在STLPort中的实现。

1 _CRTIMP inline basic_ostream<wchar_t, char_traits<wchar_t> >&
2     __cdecl endl(basic_ostream<wchar_t,
3         char_traits<wchar_t> >& _O)
4     {_O.put('\n');
5     _O.flush();
6     return (_O); }

大家看到没有,它的工作其实就是输出一个“\n”,不过后面又带了一句
flush(),这一句是强制刷新缓冲区的,如果每次输出都刷新缓冲区那就会影响到程序的性能,无法使用缓冲区的优点,所以使用的时候考虑是不是在很多地方需要endl,如果可以还是换成 “\n”吧,个人观点,欢迎交流。

posted on 2006-06-27 16:12 北风之神007 阅读(3846) 评论(7)  编辑 收藏 引用 所属分类: c/c++

评论

# re: 少用点endl 2006-06-27 19:32 LOGOS
嗯。同意  回复  更多评论
  

# re: 少用点endl 2006-06-28 22:58 beyonlin
那请问endl在什么情况下使用较好呢?  回复  更多评论
  

# re: 少用点endl 2006-06-29 10:52 JetSun
endl跟"\n"相比多了缓冲区刷新函数,需要立即把数据显示出来就用endl了,不过一般倒是看不出有什么太大的区别,效果好像 也是差不多的,只是建议少用,不是不能用  回复  更多评论
  

# re: 少用点endl 2006-07-26 18:14 mummy
endl好像在图形化操作窗口和编写图形化的程序中的使用中更适合一点!!!  回复  更多评论
  

# re: 少用点endl 2007-03-12 14:00 gg
good idea  回复  更多评论
  

# re: 少用点endl 2007-03-12 14:01 gg
gggggggg  回复  更多评论
  

# C++引用问题 2009-01-05 19:35 杨左使
#include <iostream>
using namespace std;
void swap(int&,int&);//如如果放在里面声明就不行了!为何 ?
int main( )
{
int i=3,j=5;
cout<<"交换前:"<<endl;
cout<<"i="<<i<<" "<<"j="<<j<<endl;
swap(i,j);
cout<<"交换后:"<<endl;
cout<<"i="<<i<<" "<<"j="<<j<<endl;
return 0;
}
void swap(int&a, int&b) //形参是引用类型
{
int temp;
temp=a;a=b;b=temp;
}
___  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理