C++ 如何将文件名作为参数传入并正确打开它?

C++ 如何将文件名作为参数传入并正确打开它?,c++,C++,我这里有一个简单的代码来检查文件是否打开。然而,每当我运行这个,我就会得到错误。这意味着该文件未打开。我不知道为什么,但我确定文件在同一个文件夹中,文件名输入正确。此代码有什么问题吗?您传递的是要打开的字符串文字db\U文件名,而不是传递db\U文件名字符串对象。只需删除引号: void openfile(const string &db_filename) { ifstream file; file.open("db_filename"); if(file.is

我这里有一个简单的代码来检查文件是否打开。然而,每当我运行这个,我就会得到错误。这意味着该文件未打开。我不知道为什么,但我确定文件在同一个文件夹中,文件名输入正确。此代码有什么问题吗?

您传递的是要打开的字符串文字db\U文件名,而不是传递db\U文件名字符串对象。只需删除引号:

void openfile(const string &db_filename) {
    ifstream file;
    file.open("db_filename");
    if(file.is_open())
    {
        cout<<"true"<<endl;
    }
    else cout<<"false"<<endl;}
如果您的STL版本不支持传递std::string以打开,请调用该字符串的c_str方法:

file.open(db_filename);

file.opendb_文件名;
file.open(db_filename.c_str());