我有功能
void foo()
{
std::string path = "Test.txt" ;
std::ifstream file;
file.open(path);
if (file.good()) // if the file opened up
{
std::cout << "YAY" << std::endl;
}
else
{
std::cout << "ERROR!" << std::endl;
getError();
}
}
我有一个文件&#34; Test.txt&#34;在我有.exe文件的文件夹中。 通过cmd直接运行程序,打开文件成功,但通过Visual Studio运行程序无法打开文件。 我尝试用完整路径打开文件,但结果保持不变。
答案 0 :(得分:4)
我在.exe文件
的文件夹中有一个文件“Test.txt”
这是无关紧要的。该过程甚至不知道.exe文件在哪里!
重要的是进程的当前工作目录,这可能不是加载.exe的地方。
在Visual Studio中进行调试时,我认为这是项目的根文件夹。
答案 1 :(得分:3)
系统在其他某个目录(不包含exe文件的目录)中运行可执行文件。您可以通过创建文件来发现哪一个:
void foo()
{
std::ofstream hey("whatever");
}
然后查看文件的创建位置。这是系统运行exe文件的目录。
答案 2 :(得分:1)
默认情况下,Visual Studio的工作目录是项目的文件夹(通常可以看到代码文件和项目文件),因此请确保您的文件存在。 EXE位于Debug
文件夹中,这是不相关的,因为它不是Visual Studio的工作目录。
您可以这样更改工作目录:
https://msdn.microsoft.com/en-us/library/ms171340%28v=vs.90%29.aspx
干杯。