IFSTREAM通过参数

IFSTREAM through parameter

我有一个通用的读取功能:

vector <string> GenericRead(ifstream &fin);

还有一个函数:

int Rule(ifstream &fin)
{
    vector <string> obj2=GenericRead(fin);
}

主要:

ifstream fin;
fin.open("ex.txt");
vector<string>obj=GenericRead(fin); // works fine

Rule(fin) // no longer works, there are no elements in the function vector

任何解决方案都具有相同的结果函数向量?

流就像一个安全指针,它运行在文件上并将它当前指向的值流式传输到某个目的地。在 GenericRead 的末尾我怀疑流 "points" 到文件的末尾。您需要将其回滚到文件的开头。

Rule 之前尝试 fin.seekg(std::ifstream::beg)。 免责声明 - 你没有 post 整个代码,这只是我的(可靠的)假设。