为啥 Visual Studio 无法识别 is_open() 函数

Posted

技术标签:

【中文标题】为啥 Visual Studio 无法识别 is_open() 函数【英文标题】:Why is visual studio not recognizing is_open() function为什么 Visual Studio 无法识别 is_open() 函数 【发布时间】:2019-10-05 10:46:53 【问题描述】:
#include <fstream>
#include <string>

using namespace std;
void Readfile(string fname)

    ifstream infile(fname);
    if (is_open(infile))
    
        while (!infile.eof())
        
            string sline = "";
            getline(infile, sline);
        
        infile.close();

    
    else
        stderr << "unable to open file" << fname << endl;


Visual Studio 说标识符“is_open”未定义,即使我包含了 fstream 库。

【问题讨论】:

它是一个成员函数。 关于你未来的一个问题,阅读Why is iostream::eof inside a loop condition (i.e. while (!stream.eof())) considered wrong? 【参考方案1】:

is_openstd::ifstream 的一个方法。使用infile 对象来调用它:

ifstream infile(fname);
if (infile.is_open())

   //....

【讨论】:

比我快几秒!

以上是关于为啥 Visual Studio 无法识别 is_open() 函数的主要内容,如果未能解决你的问题,请参考以下文章

Visual Studio 无法识别 boost::asio

Visual Studio 2013 无法识别 javascript [关闭]

Visual Studio 无法识别标准库

Visual Studio 代码无法识别 html 文件

Visual Studio 无法识别导入的 npm 包?

Visual Studio 2019 IntelliSense 无法识别更改的值