C++标准库笔记:13.6 操控器
来源:互联网 发布:希拉里 放过, 知乎 编辑:程序博客网 时间:2024/06/11 17:56
操控器是什么
std::cout << std::endl;
此句代码中std::endl
为操控器,操控器是用来操控stream对象的,常常只会改变输入或格式化输出的解释方式。
std::cout << std::endl
:输出’\n’,并刷新output缓冲区std::cout << std::ends
:输出’\0’std::cout << std::flush
:刷新output缓冲区std::cin >> std::ws >> strTemp
: 读入并忽略空格
其中std::ws格外给个测试例子(^-^)
//ws是一次性的,执行了任意格式化io操作后,就恢复默认值 char strTemp[16] = { 0 }; std::cin >> std::ws; while( std::cin.getline( strTemp, sizeof(strTemp) ) ) { cout << strTemp << endl; std::cin >> std::ws; }
操控器运行原理
操控器是一个特定格式的函数,而stream以这个特定格式函数为参数重载了相应的格式操作符<< 、>>。如std::cout << std::endl;
,操作符执行时,碰到std::endl,则以参数std::endl调用相应的<<重载函数(此处叫操控器)。
operator<<实现代码片断:
_Myt& __CLR_OR_THIS_CALL operator<<(_Myt& (__cdecl *_Pfn)(_Myt&)){ // call basic_ostream manipulator _DEBUG_POINTER(_Pfn); return ((*_Pfn)(*this));}
endl的实现代码片断:
template<class _Elem, class _Traits> inline basic_ostream<_Elem, _Traits>& __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr){ // insert newline and flush stream _Ostr.put(_Ostr.widen('\n')); _Ostr.flush(); return (_Ostr);}
自定义操控器
知道了操控器的运行原理,只要按其格式写个函数就行,以下是个输出hello的操控器例子
template<class T, class traits> inline basic_ostream<T, traits>& out_hello(basic_ostream<T, traits>& os ){ char szTemp[] = "hello"; os.write( szTemp, sizeof(szTemp) ); return os;}int main(){ cout << out_hello << endl; return 0;}
阅读全文
0 0
- C++标准库笔记:13.6 操控器
- 《C标准库》学习笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C标准库的setlocale()用法笔记
- C/C++学习笔记-标准库类型
- 学习笔记--C标准库的setlocale()用法笔记
- 标准C基础知识笔记一
- 标准C基础知识笔记二
- 如何修复 Chrome 书签栏图标显示不正常
- leetcode hard模式专杀之23 merge k sorted lists
- ASP.NET简介
- cocos2dx 植物大战僵尸 14 僵尸的攻击
- Kotlin笔记(四)控制流
- C++标准库笔记:13.6 操控器
- Meterial Design 的核心套路layout_behavior的自定义玩法(一)
- 机器学习 F1-Score, recall, precision
- Jmeter教程 简单的压力测试
- 共享内存
- node.js爬虫之下载图片,批量下载图片,控制下载图片并行上限
- lua 字符串删除特定字符且以特定字符转存表形式
- J
- 学习protege4.3-OWL API进行编程(一)