【发布时间】:2020-03-02 10:34:57
【问题描述】:
我有一个需要打开的文件名数组。当我把plans.open。它给了我错误“没有匹配函数调用 'std::basic_ifstream::open(std::__cxx11:...”
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
using namespace std;
int main(){
ifstream files;
ifstream plans;
string stufiles[100];
int numFiles,timeBlocks;
files.open("filesToProcess.txt");
if (files.fail()){ //checks to see if the selected store file opened
cout << "Error when opening file!" << endl;
return 0;
}
files >> numFiles;
for (int i= 0; i<= numFiles; i++) {
files >> stufiles[i];
}
files.close();
cout << stufiles[0] << endl;
plans.open(stufiles[0]);
if (plans.fail()){ //checks to see if the selected store file opened
cout << "Error when opening file!" << endl;
return 0;
}
}
这应该使用数组中的文件名打开文件。 它给了我错误“没有匹配函数调用 'std::basic_ifstream::open(std::__cxx11:...”
【问题讨论】:
-
plans.open(stufiles[0].c_str()); -
for (int i= 0; i<= numFiles; i++) { files >> stufiles[i];-- 当i == numFiles时覆盖内存。 -
@PaulMcKenzie 仅当
numFiles >= 100 -
循环应该使用
<而不是<=