1

ファイルにアクセスし、そのコンテンツで何かを行う非常に単純なコード スニペットがあります。

void MyClass::initialize( string filePath )
{
    ifstream inputFile;

    inputFile.open( filePath.c_str(), fstream::in );

    if( inputFile.is_open() )
    {

            //do something
    }else{
            cout << "Error: not able to open input file [" << filePath << "]" << endl;
    }
}

このコード スニペットを含むプロジェクトは Eclipse で正常にコンパイルされます (端末から独自の makefile を使用した場合も同様です) が、実行しようとすると 2 つの異なる動作が発生します。

  1. 端末では、たとえば./test ../workDir/inputFile、プログラムは正しく実行され、そのパスでファイルの内容にアクセスします。

  2. Eclipse では、Run->Configurations->Arguments で Input Arguments を設定する../workDir/inputFileと、次のエラーが表示されます。

エラー: 入力ファイルを開けません [../workDir/inputFile]

ターミナルから起動するとエラーなしで実行されるため、コードに問題はないと思いますが、Eclipse の引数を定義する方法の問題は何ですか? IDE からファイルを開く特定の方法はありますか?

4

1 に答える 1

1

Eclipse(および私が使用した他のすべてのIDE)は、プロジェクトディレクトリからプログラムを実行しますが、実行可能ファイルを別の場所に保存します。

プロジェクトを ./test として実行するには、「executable someplace else」ディレクトリにいます。

WorkDir はプロジェクト ディレクトリにあるため、IDE から実行する正しいパスは WorkDir/inputfile になります。

于 2013-07-02T01:42:45.303 に答える