如何从现有目录中读取TXT文件

How to read a txt file from an existing directory

本文关键字:读取 TXT 文件      更新时间:2023-10-16

我正在尝试从目录中读取一个TXT文件,这是我很远的。它的编译,但什么也没有打印。

char printFile() {
  fstream file("proj1_test1.txt");
  char file01;
  char page[5][6];
  file.open("proj1_test1.txt");
  for(int i = 0; i < numOfRows; i++){
    for(int j = 0; j < numOfColumns; j++){
      file >> file01;
      page[i][j] = file01;
      //cout << page[i][j] << endl;
    }
  }
  cout << "file loaded " << endl;
  cout << file << endl; 
  file.close();

  return 0;
}

我要读和打印的文件包含此

 F F R R R
 F F R R R
 F F R R R
 F F R R R
 F F R R R
 F F R R R
fstream file("proj1_test1.txt");

打开文件。

file.open("proj1_test1.txt");

在不首先关闭的情况下再次打开文件。打开已经打开的文件流将文件流处于错误状态,该状态必须是clear ED,然后才能从中读取或写入。

修复:删除file.open("proj1_test1.txt");

警告:此文件正在使用相对路径打开。正如问题评论中指出的那样,程序不一定与可执行文件相同的位置运行。搜索词以获取更多信息:工作目录。如果在上述校正后仍未打开文件,请确保程序是否与要打开的文件相同的文件夹运行。getcwd功能可能会有所帮助。

一个建议:在任何流上进行任何操作后(这包括打开,阅读, 和写入(测试流状态以确保操作成功。示例:

fstream file("proj1_test1.txt");
if (file)
{
    // do stuff with file
}
else
{
    // failed to open. Warn user
}

阅读时,您想要

的线
if (file >> page[i][j])
{
    // read successful. can use page[i][j]
}
else
{
    // read failed. Warn user
    // do not use page[i][j]
}