C++ fstream 不会在 windows 中打开文本文件

C++ fstream won't open a text file in windows

我写了一个简单的程序,我需要从文件中读取一些数字。

vector<unsigned long> readFile() {
ifstream dat("primes.txt", ios::in);
vector<unsigned long> praSt;
unsigned long i = 0;

while (dat >> i) praSt.push_back(i);

dat.close();

return praSt; }

我需要从文本文件中读取一些素数,并用它们做一些事情。问题是 dat 总是以 NULL 结束。我尝试了一些人推荐的绝对文件路径、相对路径和 \ 路径,但没有任何效果。

如果我 运行 它在 Ubuntu 虚拟机中,它可以正常工作并读取文件没有问题。但我习惯于在 Visual Studio (2019) 调试。对于如何解决这个愚蠢的问题,我们将不胜感激。谢谢你的时间。

您可以在项目属性的“调试”选项卡中设置 Visual Studio 的工作目录。

默认值为$(ProjectDir)

假设您需要的文件位于当前工作目录中是一种非常危险的做法 - 它可能会根据您启动程序的方式而改变。您应该使用“well-known”路径(如 windows 上的 APPDATA)或相对于您的可执行文件的路径(然后您可以在 运行 时构建该路径)。