0

複数のファイルを開いて、それらのデータをコンパイルしようとしています。プログラムはコンパイルされますが、実行すると次のエラーが発生します。

'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 配列であり、それを a に等しく設定しているという事実と関係があると思いますストリング。また、プログラムを実行すると、./Analyze 2009 2010 (など) のように実行されます。実行すると、開きたいファイルの名前が出力されるので、ファイル自体を開こうとするときに問題があることがわかります。質問するのはこれが初めてなので、従わなかった規則があれば教えてください。修正しようとします。

4

1 に答える 1