我有一个非常简单的代码段,可以访问文件并对其内容进行操作:
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),但是当我尝试运行它时,我有两种不同的行为:
使用终端,例如./test ../workDir/inputFile
,程序正确运行并使用该路径访问文件的内容。
使用Eclipse,在运行 - >配置 - &gt;参数中将输入参数设置为../workDir/inputFile
后,系统会出现以下错误提示:
错误:无法打开输入文件[../ workDir / inputFile]
我相信我的代码不是问题,因为当我从终端启动时它运行没有错误,那么我为Eclipse定义参数的方式有什么问题?是否有从IDE打开文件的特定方法?
答案 0 :(得分:1)
Eclipse(以及我使用的每个其他IDE的AFAIK)从项目目录运行程序,但将可执行文件存储在其他地方。
要以./test执行项目,您将进入“可执行的其他地方”目录。
根据你的说法,从IDE运行的正确路径是WorkDir / inputfile,因为WorkDir在你的项目目录中,对吧?