【发布时间】:2014-03-04 05:38:12
【问题描述】:
在我构建代码之前,我从来没有遇到过这个问题,主要的错误检查 if 语句在控制台中运行正确。
ifstream inputfile;
inputfile.open("arrayNumbers.txt");
if(inputfile) //<----- This is working correctly in the CPP, but not in the EXE
{
不幸的是,当我运行可执行文件时,if 语句跳到“文件未打开”的 else 部分
else
{
cout << "File did not open" << endl;
//^^^^In the exe, the program skips the rest of the code and kicks here
}
有人知道为什么会这样吗?
编译器是 Visual Studio 2010
我也在调试和发布模式下运行过它
【问题讨论】:
-
我假设当您的意思是“运行 CPP”时,您是从 Visual Studio 的“调试”菜单启动程序,而当您运行 EXE 时,您实际上是在双击 EXE 文件(或等效文件) ) - 如果是这种情况,问题可能出在 arrayNumbers.txt 文件的位置。尝试将该文件复制到带有 EXE 的文件夹并运行 EXE 然后
-
更正了调试菜单。我以为 Visual Studio 会读取整个程序文件夹以查找文本文件,但我想不会。复制过来,发现还不错。 VS不会搜索所有文件夹的任何原因?
-
Visual Studio 不搜索文件:程序从它认为的“当前目录”打开文件:当您直接运行 EXE 文件时,此目录是 EXE 文件所在的位置,当您从 Visual Studio 运行它,Visual Studio 将当前目录设置为与项目相关的内容,以方便您。请注意,在这两种情况下,您实际上都在运行相同的 EXE 文件——Visual Studio 必须将 C++ 源代码编译为 EXE 才能运行它
标签: c++