错误代码:没有用于调用的匹配函数

时间:2019-05-05 20:33:08

标签: c++

我正在尝试读取文件并将其存储在数组中。

这是我用来打开文件的代码的一部分:

int readFile(AccessRecord & file, Files & namesIn)
{    
    std::ifstream fin(file.fileName);
    if (fin.fail())
    return -1;
}

这是我在编译时遇到的新错误:

[meg21allred@LinuxLab08 ~]$ g++ myAssign02.cpp
myAssign02.cpp: In function ‘int readFile(AccessRecord&, Files&)’:
myAssign02.cpp:72:35: error: no matching function for call to

‘std::basic_ifstream<char>::basic_ifstream(std::string&)’
std::ifstream fin(file.fileName);

如果我只是使用std::cout << file.fileName;,它似乎可以打印出正确的文件名,但是当我将file.fileName放入ifstream line

时,它不喜欢它。

1 个答案:

答案 0 :(得分:1)

您似乎正在使用一个非常旧的编译器,该编译器尚不支持采用ifstream的{​​{1}}构造函数,该构造函数已于2011年添加到C ++标准库中。使用了string(老式的C风格的字符串),因此请尝试:

const char*