当 运行 来自 Visual Studio 时程序找不到相关文件
Program doesnt find relative file when run from withing Visual Studio
我正在使用 visual studio 2019。我正在执行此过程以尝试从文件中读取数据,但在 visual studio 上我无法读取。它只是显示空白屏幕,没有错误等。
然后我使用在线 ide 但程序能够在线读取文件。我无法弄清楚这个问题。两者使用的代码相同。
如有任何帮助,我们将不胜感激。提前谢谢你。
下面是写的代码:
#include <iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
ifstream inputfile;
string name1, name2, name3;
inputfile.open("names.txt");
inputfile >> name1;
inputfile >> name2;
inputfile >> name3;
inputfile.close();
cout << name1 << endl;
cout << name2 << endl;
cout << name3 << endl;
return 0;
}
当您从 Visual Studio 中 运行 您的项目时,您当前的工作目录将成为您的 main.cpp
所在的位置(请参阅末尾的注释),而不是可执行目录。因此,您的程序找不到 names.txt
,因此找不到您所看到的。
因此您可以通过进入您的 Release/Debug 目录(取决于您构建项目的配置)并执行您的程序来验证这一点。您会看到它会找到文件并正常工作。
您可以从 Properties\Debugging
working directory
选项更改您的工作目录并将其设置为类似:$(SolutionDir)$(Platform)$(Configuration)\
这是一个简单的演示,它实际上是如何工作的:
备注
我假设您的 main.cpp
位于 .vcxproj
等所在的项目目录中。因此,更正确的说法是默认情况下当前工作目录是您的项目文件 (.vcxproj
) 所在的位置,而不是您的 cpp 文件所在的位置,因为它们可以放在任何地方。
我正在使用 visual studio 2019。我正在执行此过程以尝试从文件中读取数据,但在 visual studio 上我无法读取。它只是显示空白屏幕,没有错误等。 然后我使用在线 ide 但程序能够在线读取文件。我无法弄清楚这个问题。两者使用的代码相同。
如有任何帮助,我们将不胜感激。提前谢谢你。
下面是写的代码:
#include <iostream>
#include<fstream>
#include<string>
using namespace std;
int main() {
ifstream inputfile;
string name1, name2, name3;
inputfile.open("names.txt");
inputfile >> name1;
inputfile >> name2;
inputfile >> name3;
inputfile.close();
cout << name1 << endl;
cout << name2 << endl;
cout << name3 << endl;
return 0;
}
当您从 Visual Studio 中 运行 您的项目时,您当前的工作目录将成为您的 main.cpp
所在的位置(请参阅末尾的注释),而不是可执行目录。因此,您的程序找不到 names.txt
,因此找不到您所看到的。
因此您可以通过进入您的 Release/Debug 目录(取决于您构建项目的配置)并执行您的程序来验证这一点。您会看到它会找到文件并正常工作。
您可以从 Properties\Debugging
working directory
选项更改您的工作目录并将其设置为类似:$(SolutionDir)$(Platform)$(Configuration)\
这是一个简单的演示,它实际上是如何工作的:
备注
我假设您的 main.cpp
位于 .vcxproj
等所在的项目目录中。因此,更正确的说法是默认情况下当前工作目录是您的项目文件 (.vcxproj
) 所在的位置,而不是您的 cpp 文件所在的位置,因为它们可以放在任何地方。