从字符串数组变量中打开文件

时间:2015-03-23 21:29:58

标签: c++ ifstream

我正在尝试编写一个循环遍历多个文件的程序。

string files[]={"file1.txt","file2.txt"};
int i=0;
ifstream fin;
while(i<2){
    fin.open(files[i]);
    fin.close();
    i++;
}

这是我的代码的精简版本。我从fin.open行收到错误。我的编译说:无法在当前范围内调用basic_ifstream<char,char_traits<char>>::open(files[i])

如果我输入实际字符串即可以正常工作。 fin.open("file1.txt"),但我想避免复制相同的代码块8次。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

  

“我的编译说:”
  Can't call basic_ifstream>::open(files[i]) in current scope.

较旧的C ++标准版本(之前的C ++ 11)想要查看std::ifstream::open()函数的const char*参数,您可以使用

fin.open(files[i].c_str()); 

让代码向后兼容。