C++中的endl
2018-06-17 21:45:57来源:未知 阅读 ()
从开始接触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
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash