将 ifstream 对象传递给函数并在两者之间使用 getline()

passing ifstream object to function and use getline() in between

我想通过调用一个函数打开一个名为 1.board 的文件,然后使用 getline 函数将它的字符打印到新的 line.But 这显示了很多错误。

#include <iostream>
#include <string>
#include <vector>
#include <fstream>
using std::ifstream;
using std::cout;
using std::string;
using std::vector;

void ReadBoardFile(ifstream& search)
{
  string line;
  search.open("1.board");
  while(getline("1.board",line))
  {
    cout<<line<<"\n";
  }
}

int main() {
  ifstream fin;
  ReadBoardFile(fin);
}

我不知道我在做什么wrong.I 就是找不到完美而准确的答案。 帮助,如果你 can.Thanku!!!!!

所以这里是您重写的代码,因此它可以工作。

两个更改,首先 getline 的第一个参数应该是您正在读取的流,而不是文件名。我猜你写那篇文章的时候注意力不集中。

第二个更改,我移动了流变量 search,以便它在您的 ReadBoardFile 函数中是本地的。您发布的代码中没有理由将其作为参数传递。您可能希望将文件名作为参数传递,但我会留给您进行更改。

void ReadBoardFile()
{
  ifstream search("1.board");
  string line;
  while(getline(search,line))
  {
    cout<<line<<"\n";
  }
}

int main() {
  ReadBoardFile();
}