0

我第一次尝试使用 seekg 。它在文档中说它的论点可能是:

istream& seekg (streampos pos);

istream& seekg (streamoff off, ios_base::seekdir dir);

据我了解,“streampos pos”可能是一个 int?我看到了像“seekg(0)”这样的例子但是当尝试编译它时它说我使用了无效的参数:

void function(int pos){
ifstream reader("data.dat");
if(!reader.is_open())
    return 0;
int posinArchive = pos * 74;
reader.seekg(posinArchive);

我什至尝试将其直接转换为 streampos:

  void function(int pos){
ifstream reader("data.dat");
if(!reader.is_open())
    return 0;
int posinArchive = pos * 74;
reader.seekg((streampos)posinArchive);

一样。seekg(0),什么也没有。怎么了?

4

1 回答 1

0

第一个版本

stream& seekg ( streampos pos );

当您想要寻找您之前通过调用tellg.

如果要寻找位置 0,则必须使用seekg(0, ios::beg)从文件开头获得零偏移量。

于 2012-07-05T11:22:38.527 回答