Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 我能';t在VS 2013中使用if(ifs==NULL)命令_C++ - Fatal编程技术网

C++ 我能';t在VS 2013中使用if(ifs==NULL)命令

C++ 我能';t在VS 2013中使用if(ifs==NULL)命令,c++,C++,编译此代码时: std::ifstream ifs("somefile.txt"); if(ifs == NULL) 我犯了一个错误 没有与这些操作数匹配的运算符“==” 我在VS 2013的每个项目中都会遇到同样的错误,但在VS 2010中我没有任何问题 如何解决这个问题?在C++11中,std::basic\u ios的定义(std::basic\u ifstream继承自std::basic\u ifstream)发生了变化。特别是,它的转换运算符运算符void*更改为,因此您尝试执行的

编译此代码时:

std::ifstream ifs("somefile.txt");
if(ifs == NULL)
我犯了一个错误

没有与这些操作数匹配的运算符“==”

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


如何解决这个问题?

在C++11中,
std::basic\u ios
的定义(std::basic\u ifstream继承自
std::basic\u ifstream)发生了变化。特别是,它的转换运算符
运算符void*
更改为,因此您尝试执行的操作不再有效。尽管如此,检查流的状态从来都不是一种常见的方法。相反,只要执行
if(!ifs)


<> P> C++标准的变化,现在比以往任何时候都快,MSVC有一种习惯,就是把不同的标准混合在一起,直到完全支持最新的标准为止。当情况发生变化时,您可能会看到一些代码被破坏,尽管委员会的目标是尽可能减少这种情况。

要了解导入数据是否结束,我不知道文件中有多少信息,并且-请在您的问题中添加关于“多少信息…”的注释,重要的一点是告诉你自己need@JamesKanze:谁说我只是因为你碰巧没有看到(或注意到)什么东西而增加了困惑-P,不管怎样,你有你的发言权,我有我的,任何人都想做一个关于不同C++的庞大实体的调查,可以得出实际的使用百分比。我们有一个有意义的结论(无论是一个还是两个都是惯用的和多大程度的),否则我们就完成了……JAMESKANZE:作为定义流、指针、循环控制变量(曾经见过<代码>(int i=…
?)因为他们能够被初始化和本地化,使用范围减少了混乱,我也经历了类似的20年的专业经验,长期参与COMP.Lang.C++,阅读我的GOW和C++文学的份额,这些年来,所以我们只能同意不同意……@ JAMESSKANZE:<代码> < /COD> >作为一个例证。这种范围界定的优先权…建议不使用这种代码会使您脱离我影响过的任何审查或标准小组,我们这里没有得到任何新信息,那么您认为您的持续断言在这里会发生什么变化?