读书人

c++文件seekg()文件位置指针移动有

发布时间: 2012-02-22 19:36:55 作者: rapoo

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

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

读书人网 >C++

热点推荐