fstream 读取大文件eof()检测失效
ifstream in("data/log2.txt",ios::in);//文本格式日志文件,约5Mif(!in){
cerr<<"canon open file!\n";
return 1;
}
while(!in.eof()){//检测是否读取到文件结尾,小文件检测正常,大文件始则死循环
if(!in.getline(str,140))break; //检测读取状态,失败则跳出循环,eof检测失效只能靠这个.
len = strlen(str);
if(len>maxlen){
maxlen=len;
mask = n;
offset = in.tellg();
}
//nod.Setdate(str,nod.in);
n++;
}
cout<<in.eof();//读取小文件退出后返回值为1,读取大文件则始终为0..
求解!