非常基本的文件i / o

时间:2011-04-25 13:43:43

标签: c++ file io fstream istream

每当我尝试使用istream打开文件时,它都不会打开(is_open()返回false)。是否需要放置一个特定的目录来访问它(它位于项目的输出目录中)?

ifstream ifile;
ifile.open("test.txt");
if(!ifile.is_open()){
    cout << "The file could not be opened." << endl;
}
cin.get();

4 个答案:

答案 0 :(得分:4)

它需要位于程序的“工作目录”中。这可以是运行程序时的目录,也可以是Visual Studio等IDE,项目目录(包含Release和/或Debug构建文件夹的目录)。

答案 1 :(得分:2)

您需要提供文件的正确路径。我不知道你的项目的结构是什么,但是像:

ifile.open("output/test.txt");

答案 2 :(得分:2)

我在Linux机器上工作,并且文件test.txt与二进制文件在同一目录中始终有效。因此,如果项目的可执行文件名为a.out,那么以下两个步骤应该可以使它工作:

  1. 确保test.tx t与a.out
  2. 位于同一目录中
  3. 检查test.txt上的permissionswhether 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();