C++中的endl

从开始接触C++到现在,一直以为语句

cout << "hello world!" << endl;

中的endl只是一个相当于C中的换行‘\n’;直到今天,莫名的搜索了一下endl才发现了一个惊天大秘密,原理endl不仅仅是一个换行那么简单,它居然是一个函数模板,实例化后变成一个模板函数,作用就是insert newline and flush stream;

 1         // MANIPULATORS
 2 template<class _Elem,
 3     class _Traits> inline
 4     basic_ostream<_Elem, _Traits>&
 5         __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr)
 6     {    // insert newline and flush stream
 7     _Ostr.put(_Ostr.widen('\n'));
 8     _Ostr.flush();
 9     return (_Ostr);
10     }

IO操纵符:(本质是自由函数,不封装在某个类的内部,使用时不采用显式的函数调用形式)

endl:输出时插入换行并刷新流

endls:输出时在字符 插入NULL作为尾符

flush:刷新缓冲区,把流从缓冲区输出到目标设备,并清空缓冲区

ws:输入时略去空白字符

dec:令IO数据按十进制格式

hex:令IO数据按十六进制格式

oct:令IO数据按八进制格式

更多关于操纵符的细节http://blog.csdn.net/k346k346/article/details/49981695

转载于:https://www.cnblogs.com/SkyeAngel/p/7654683.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值