Eclipse无法打开作为参数给出的文件

时间:2013-07-01 23:57:15

标签: c++ eclipse ifstream argv

我有一个非常简单的代码段,可以访问文件并对其内容进行操作:

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,在运行 - >配置 - &gt;参数中将输入参数设置为../workDir/inputFile后,系统会出现以下错误提示:

  3.   

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

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

1 个答案:

答案 0 :(得分:1)

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

要以./test执行项目,您将进入“可执行的其他地方”目录。

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