每当我尝试使用 istream 打开文件时,它都不会打开(is_open() 返回 false)。是否需要放置一个特定目录才能访问文件(它位于项目的输出目录中)?
ifstream ifile;
ifile.open("test.txt");
if(!ifile.is_open()){
cout << "The file could not be opened." << endl;
}
cin.get();
它需要在程序的“工作目录”中。这是您运行程序时所在的目录,或者如果您使用的是像 Visual Studio 这样的 IDE,则为项目的目录(该目录还包含 Release 和/或 Debug 构建文件夹)。
您需要提供文件的正确路径。我不知道您的项目结构是什么,但类似于:
ifile.open("output/test.txt");
我在 Linux 机器上工作,并且将文件test.txt
与二进制文件放在同一目录中总是有效的。因此,如果您的项目的可执行文件名为a.out
,那么以下两个步骤应该可以使其工作:
test.tx
t 与a.out
permissions
test.txt 和whether it exists
.尝试更改此行 ifile.open("test.txt"); -> ifile.open("/test.txt");
ifstream ifile;
ifile.open("/test.txt");
if(!ifile.is_open()){
cout << "The file could not be opened." << endl;
}
cin.get();