我第一次尝试使用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),什么都没有。
怎么了?
答案 0 :(得分:0)
第一个版本
stream& seekg ( streampos pos );
当您想要寻找之前通过tellg
来电获得的职位时,应该使用。
如果你想寻找位置0,你必须使用seekg(0, ios::beg)
从文件开头到零偏移。