首页 > 解决方案 > C ++ fstream不会在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 VM 中运行它,它可以工作并且读取文件没有问题。但我习惯于在 Visual Studio (2019) 中进行调试。对于如何解决这个愚蠢的问题,任何和所有的帮助都将非常感激。感谢您的时间。

标签: c++visual-studiofstream

解决方案


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

默认值为$(ProjectDir)

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


推荐阅读