首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-22 
c++文件seekg(),文件位置指针移动问题std::fstream_mfilewhile(1){if(_mfile.eof()){req.read.data0_mf

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);
}

[解决办法]
你还不如一次性读到内存里面,然后想干嘛就干嘛
[解决办法]
二楼的正解

热点排行