我有一个函数 func1(ifstream& fin) 使用对 fin.getline() 的多次调用从文件中读取。现在在这个 func1 中,我还调用了另一个函数 func2(ifstream&),它必须访问 func1 正在访问的同一个文件。我可以简单地将 func2 称为 func2(fin)。
现在假设 func1 读取文件直到第 4 行,然后调用 func2 并做它的事情,读取文件直到第 7 行。现在问题是:一旦 func1 返回到 func1,我想继续读取文件从 func1 离开的地方,即第 5 行,但这是不可能的,因为 fin 现在“指向”文件的第 8 行。
我已经尝试将 func2 定义为 func2(const ifstream&) 和 func2(const ifstream*) 或在 func1 中创建 fin 的副本并将其传递给 func2,但编译器不会接受这些选项中的任何一个。
我应该怎么办?谢谢。