读书人

fscanf成了死循环大家帮忙看下解决方

发布时间: 2012-04-18 15:01:59 作者: rapoo

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

读书人网 >C语言

热点推荐