为什么 std::fstream 返回 void 而不是 bool
Why std::fstream returns void instead of bool
为什么标准库中C++的 std::fstream 类的成员函数打开返回 void 而不是 bool 以立即检查成功打开?
因为如果设置了异常,则当open
调用不成功时,它会引发异常,或者它们使用 failbit
来指示发生了错误。从文档中:
失败时,设置故障位标志(可以使用成员进行检查) fail),并且根据设置的异常值,异常可能会 被扔掉。
我的理解是,当 fstream 允许您尝试读取(或我想也写入)任何类型的文件时,有很多方式可能会失败。 此外,"失败"也可能是模棱两可的,具体取决于情况和程序员。 鉴于此,我认为很难从布尔返回值中获得任何有意义的东西。
相关文章:
- 让bool方法返回其他整数
- 返回 bool 作为 CPP 中 bool 运算符 [] 中的值
- 为什么"std::set::erase(const key_type&)"返回"size_type"而不是"bool"?
- 返回"Cannot convert from 'std::ofstream {aka std::basic_ofstream<char>}' to bool"错误
- 尝试创建一个评估字符的bool函数,如果字母数字为字母,则返回true
- C++ bool 数组返回 1 或 0 以外的值
- C :Bool方法在COUT语句之后返回意外数字
- 我的bool函数一直返回true,我不知道为什么
- 返回 std::p air<const CustomClass &, bool> 用于搜索函数中的失败情况,当 CustomClass 是抽象基类时
- 功能模板专业化中的bool返回值
- 在C 中返回bool的功能
- 显式布尔操作员 - 无法返回,测试,初始化bool
- 为什么 std::fstream 返回 void 而不是 bool
- 如何处理失败的方法:通过使用异常或使方法返回bool
- 如果删除,如何返回 true,如果不使用 bool,则返回 false
- VS2012 std::函数运算符 bool 意外返回 true
- C++返回的bool总是false
- 从 Vector 返回 bool&
- C++Bool返回十六进制Int
- c++ bool返回0 1而不是true false