您好我正在为我的C ++类做这个项目,我的代码遇到了问题。我不知道是否应该发布整个代码,因为它有点长,但我只是要发布函数和错误所在的位置。
这是函数 -
void loadfile(int jeff[][4],int anna[][4])
{
string fname;
cout<< "Enter the name of the file to load:" << endl;
cin>>fname;
ifstream istream(fname);
if(istream.is_open())
{
for(int i=0;i<2;i++)
{
if(i==0)
{
for(int j=0;j<4;j++)
{
for(int k=0;k<4;k++)
{
istream>>jeff[j][k];
}
}
}
else
{
for(int j=0;j<4;j++)
{
for(int k=0;k<4;k++)
{
istream>>anna[j][k];
}
}
}
}
cout<<"New shcedule loaded successfully" << endl;
}
else
{
cout<<"Error in opening file" << endl;
return;
}
}
我在
收到错误ifstream istream(fname);
错误说 - 错误:没有用于调用
的匹配函数这是我的电话
case '6':
loadfile(jeff, anna);
break;
答案 0 :(得分:0)
将您收到错误的行更改为
ifstream istream(fname.c_str());
看起来您的编译器处于C ++ 98/03模式。在这种情况下,打开文件的std::ifstream
构造函数需要const char*
。采用const std::string&
的构造函数不会被添加到C ++ 11。