非常基本的文件i/o

Very basic file i/o

本文关键字:文件 非常      更新时间:2023-10-16

每当我尝试用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,那么以下两个步骤应该可以使其工作:

  1. 确保test.tx t与a.out
  2. 在同一目录下
  3. 检查test.txt和whether it exists中的permissions

试着改变这一行if file.open("test.txt");-> ifile.open("/用法");

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