终于明白c++中为什么返回的istream等对象能直接进行bool判断
来源:互联网 发布:无线网络优化设备现状 编辑:程序博客网 时间:2024/05/21 12:46
之前一直很困惑c++中用>>, getline等函数读进数据,如:
while(cin>>c) 或者 while(getline(cin, str))为什么能直接判读是否读到数据尾或者读取数据出错,相当于返回的是个bool类型
因为我看函数其原型是这样的,返回的是个istream&
istream& operator>> (bool& val ); istream& operator>> (short& val ); istream& operator>> (unsigned short& val ); istream& operator>> (int& val ); istream& operator>> (unsigned int& val ); istream& operator>> (long& val );
istream& getline ( istream& is, string& str, char delim ); istream& getline ( istream& is, string& str );
原来是其父类basic_ios 中实现了以下两个函数,哈哈,终于弄明白了:
//@{ /** * @brief The quick-and-easy status check. * * This allows you to write constructs such as * "if (!a_stream) ..." and "while (a_stream) ..." */ operator void*() const { return this->fail() ? 0 : const_cast<basic_ios*>(this); } bool operator!() const { return this->fail(); } //@}
- 终于明白c++中为什么返回的istream等对象能直接进行bool判断
- istream的对象
- string对象比能直接进行修改
- 直接比较两个对象是否相等返回false和List中判断是否包含某个对象的问题
- 【Unity&C#】如何对一组Bool型变量进行判断
- Linux内核中bool值的返回
- 在C语言应用程序中使用兼容IStream的流
- Android在AsyncHttpClient框架的基础上定制能直接返回对象数组的框架
- 新new 的一个对象不对它进行任何操作,直接返回,将返回什么?
- 为什么C语言中bool型变量占用一个字节
- 终于明白了bpel中partnerLink中role的含义
- 终于明白了,为什么会有经济危机
- C++中istream的使用
- LigerUi中,使用LG.ajax返回JSON提示信息的Asp.Net拼法(示例,应该能看明白吧)
- 终于明白为什么教科书上都喜欢用构造方法构造窗体。而不是直接写在main里
- c语言中如何精确判断bool float是否等于零?
- C# 调用C++DLL传递的bool型,返回混乱
- C# 调用C++DLL传递的bool型,返回混乱
- 开发者不得不知的Android权限说明
- javascript如何获取表单select域的选择部分的文本
- 帧内编码的模式选择
- JQuery小结
- 心情随写
- 终于明白c++中为什么返回的istream等对象能直接进行bool判断
- javascript完成分栏显示的例子
- 自动创建设备文件
- Linux内核通知链notifier
- C++实验 实验2 指针与引用
- 为什么要学Win32及Win32程序框架
- struts2 IO流下载文件及上传文件
- ant: 编译 sipdroid
- Trac 经验谈之(4)报表篇