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