c++文件seekg(),文件位置指针移动有关问题

c++文件seekg(),文件位置指针移动问题
std::fstream   _mfile;
while(1){
        if(   _mfile.eof())
      {
            req.read.data   =   0;
            _mfile.seekg(0,   ios_base::beg);
      }
      else
      {
            _mfile.seekg(offset,   ios_base::beg);
            _mfile.read((char   *)&req.read.data,   req.read.size);
      }
}
部分代码如上:
我跟踪调试了一下,发现当文件的当前位置移动到文件末尾时,此时if(   _mfile.eof())成立,进入if中执行req.read.data   =   0;等语句.但当再一次循环时,仍然进入到
if(   _mfile.eof())中执行,怎么感觉“_mfile.seekg(0,   ios_base::beg);”这句没有执行啊?文件读到末尾时,就不能再用seekg移动到文件开头吗??


我想当读到文件末尾时,再把文件指针移动到文件开头,怎么办啊?

请各位执教,谢谢!

------解决方案--------------------
if( _mfile.eof())
{
_mfile.clear(); //清楚错误状态, 包括eof!!!

req.read.data = 0;
_mfile.seekg(0, ios_base::beg);
}

------解决方案--------------------
你还不如一次性读到内存里面,然后想干嘛就干嘛
------解决方案--------------------
二楼的正解