如何传递文件名作为参数并正确打开它?

时间:2018-10-03 02:53:59

标签: c++

void openfile(const string &db_filename) {
    ifstream file;
    file.open("db_filename");
    if(file.is_open())
    {
        cout<<"true"<<endl;
    }
    else cout<<"false"<<endl;}

我这里有这个简单的代码,用于检查文件是否打开。但是,每当我运行此命令时,我都会得到错误。这意味着该文件未打开。我不知道为什么,但是我确定文件位于同一文件夹中,并且文件名输入正确。这段代码有什么问题吗?

1 个答案:

答案 0 :(得分:1)

您正在将字符串文字"db_filename"传递给open(),而不是传递db_filename字符串对象。只需删除引号即可:

file.open(db_filename);

如果您的STL版本不支持将std::string传递到open(),请调用字符串的c_str()方法:

file.open(db_filename.c_str());