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),但是当我尝试运行它时,我有两种不同的行为:

  1. 使用终端,例如./test ../workDir/inputFile,程序可以正确运行并使用该路径访问文件的内容。

  2. 使用 Eclipse,在 Run->Configurations->Arguments 中设置 Input Arguments 后,../workDir/inputFile我收到以下错误提示:

错误:无法打开输入文件 [../workDir/inputFile]

我相信这在我的代码中不是问题,因为当我从终端启动时它运行时没有错误,那么我为 Eclipse 定义参数的方式有什么问题?是否有从 IDE 打开文件的特定方法?

4

1 回答 1

1

Eclipse(以及我使用过的所有其他 IDE)从项目目录运行您的程序,但将可执行文件存储在其他地方。

要将您的项目作为 ./test 执行,您位于“其他地方的可执行文件”目录中。

根据您的说法,从 IDE 运行的正确路径是 WorkDir/inputfile,因为 WorkDir 在您的项目目录中,对吧?

于 2013-07-02T01:42:45.303 回答