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

C++文件输入流无法读到文件结尾(无限循环)-帖

2012-05-29 
C++文件输入流无法读到文件结尾(无限循环)---求助帖[codeC/C++][/code]std::ifstream ifsListstd::ifstr

C++文件输入流无法读到文件结尾(无限循环)---求助帖
[code=C/C++][/code]
std::ifstream ifsList;

std::ifstream::pos_type pos;

while (!stop){

.......


ifsList.open(list);//list文件中存储的是文件名的列表
if(!ifsList)continue;
pos=ifsList.tellg();
while(ifsList>>strFileName){

if(ifsList.eof()){
break;
}
if(ifsList.bad()){
break;
}
if(ifsList.fail()){
ifsList.clear(ifsList.failbit);
continue;
}
if(pos==ifsList.tellg()){
break;
}else
pos=ifsList.tellg();

if(strFileName.size()<2)
continue;

//调用子函数,打开对应的文件进行读操作,完成后返回循环
.....
}
ifsList.close();
ifsList.clear();
SLEEP(vtime*1000);
}

这段代码在程序启动后的一段时间里正常运行(几个小时),过一段时间后,就死循环了。
现在已经确定在while(ifsList>>strFileName)这个循环中无限循环,跳不到上层循环while (!stop)。
这是什么原因,帮忙看一下!


[解决办法]
会不会是IO缓冲区出问题了。尝试清除一下。
[解决办法]
你把if(ifsList.fail()){
ifsList.clear(ifsList.failbit);
continue;
}
注释掉之后再试试吧

热点排行