fscanf成了死循环,大家帮忙看下
不是说fscanf读完一段后会把文件指针移到当前结束的位置么?我的怎么读完一段后指针没变啊。结果程序成了死循环
FILE *flocal ;
int listi=1;
int num=0 ;
if ((flocal=fopen( "record.txt ", "r "))!=NULL)
{
CString localbuff;
fseek(flocal, 0, SEEK_SET) ;
for (;fscanf(flocal, "%[^\n] ",localbuff)!=EOF;listi++)
{
}
}
[解决办法]
fscanf 返回以读取的数据个数 ~
不可能读取 -1 个数据,
所以不能这么判断
for (;fscanf(flocal, "%[^\n] ",localbuff)!=EOF;listi++)
{
}
==》
fscanf(flocal, "%[^\n] ",localbuff);
while(!feof(flocal))
{
listi++;
...
fscanf(flocal, "%[^\n] ",localbuff);
}