错误 - 函数调用不正确?

时间:2016-07-06 04:30:28

标签: c++

您好我正在为我的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;

1 个答案:

答案 0 :(得分:0)

将您收到错误的行更改为

ifstream istream(fname.c_str());

看起来您的编译器处于C ++ 98/03模式。在这种情况下,打开文件的std::ifstream构造函数需要const char*。采用const std::string&的构造函数不会被添加到C ++ 11。