加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 我不能在VS 2013中使用if(ifs == NULL)命令

发布时间:2020-12-16 09:53:22 所属栏目:百科 来源:网络整理
导读:编译此代码时: std::ifstream ifs("somefile.txt");if(ifs == NULL) 我收到一个错误 no operator matches these operands “==” 我在VS 2013的每个项目中都遇到了同样的错误,但我在VS 2010中没有遇到任何问题. 怎么解决这个? 解决方法 std :: basic_ios(s
编译此代码时:

std::ifstream ifs("somefile.txt");
if(ifs == NULL)

我收到一个错误

no operator matches these operands “==”

我在VS 2013的每个项目中都遇到了同样的错误,但我在VS 2010中没有遇到任何问题.

怎么解决这个?

解决方法

std :: basic_ios(std :: basic_ifstream继承)的定义在C 11中发生了变化.特别是,它的转换操作符操作符void *更改为 explicit operator bool,因此您尝试执行的操作不再有效.尽管如此,检查流的状态绝不是常见的方法.相反,只做if(!ifs).

C标准现在变得比以往更快,MSVC习惯于将不同的标准混合在一起,直到它们完全支持最新标准.尽管委员会的目标是尽可能地减少这些代码,但是当事情发生变化时,你可以期待一些代码可以破解.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读