我把它放在Source Files文件夹下。我已将我的工作目录设置为$(SolutionDir)$(配置)\(我不确定这是否正确,我在某处看到了)有人可以帮助我排除故障。
int main()
{
cout << "program running" <<endl;
pair<int, unsigned int> mypair;
ifstream myfile;
myfile.open("numbers.txt", ios::in);
if (!myfile.is_open()){
cerr << "can't open input file" << endl;
}
else
{
cout << "file opened" << endl;
}
getchar();
myfile.close();
}
...输出是:无法打开输入文件
答案 0 :(得分:2)
要确定您指向的目录,请尝试创建一个新文件,而不是打开一个:
std::ofstream("out_test.txt");
然后您可以使用文件资源管理器将该文件搜索到解决方案目录中。
答案 1 :(得分:1)
有一个应用程序的当前目录。当您从VS工作目录运行应用程序时,将是当前的应用程序。
如果指定具有相对路径的文件名(或根本没有路径),OS将尝试查找相对于该目录的文件。其中可执行文件和特别是源文件完全无关。因此,解决方案可以是将工作目录设置为numbers.txt
所在的位置(或在那里移动nubers.txt
),或使用类似foobar/numbers.txt
或甚至../foobar/numbers.txt
之类的相对路径等或使用绝对路径路径。
答案 2 :(得分:1)
好吧,我设法弄清楚..有帮助:)我做了保罗M说的话:
To figure out what directory you're pointing to, try to create a new file instead of opening one:
std::ofstream("out_test.txt");
Then you can find that file searching with File Explorer into the solution dir.
在我弄清楚文件发送到哪里后,我向该目录添加了一个带有一些整数的新文件,并确保工作目录是相同的。我不确定是否必须更改它? (可以将文件发送到其他地方吗?)。
之前我曾试图这样做,但我无法通过复制粘贴将我的txt文件移动到此目录中。所以放弃了。但无论如何我只是右键单击/新文本文档/并用一些数字编辑了文档。然后改变我的程序打开这个新文档。 直接将文件保存到该目录也有效。 :) :) :) :) 但我很好奇为什么我不能把它贴在那里?