搜索无效参数

seekg invalid arguments?

本文关键字:参数 无效 搜索      更新时间:2023-10-16

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

istream&seekg ( streampos pos );

iStream&Seekg ( Streamoff Off, ios_base::Seekdir Dir );

据我了解,"streampos pos"可能是一个整数?我看到了类似"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),什么都没有。怎么了?

第一个版本

stream& seekg ( streampos pos );

应该在您想要寻求以前从电话中获得的位置时使用 tellg .

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