我正在尝试打开多个文件来编译其中的数据。我的程序编译但是当我运行它时出现以下错误:
在抛出 'std::bad_alloc' what() 的实例后调用终止:std::bad_alloc Aborted
到目前为止,我的程序很长,所以我只链接处理打开文件的部分。
int main(int argc,char *argv[])
{
vector<Plays> yearsEntered;
Plays *MyPlays = new Plays();
if (argc < 2)
{
cout << "No filenames given." << endl;
return 0;
}
for(int i=1;i < argc; ++i)
{
string filename = argv[i];
cout << filename << endl;
filename.append(".csv");
cout << filename << endl;
ifstream inputFile(filename.c_str(), ios::in);
inputFile.open(filename.c_str());
//Error checking in case file fails to open
if (!inputFile)
{
cout << "Could not open file. " <<
"Try entering another file." << endl;
}
}
我不太确定为什么会出现错误,但如果我不得不猜测,我会说这与 argv[i] 是一个 *char 数组并且我将其设置为细绳。另外,当我运行程序时,它的运行方式如下:./Analyze 2009 2010 (etc)。当我运行它时,它会打印出我要打开的文件的名称,所以我知道问题出在它试图打开文件本身时。这是我第一次提出问题,所以如果有任何我未能遵循的约定,请告诉我,我会尝试解决它。