rewind失去作用

来源:百度知道 编辑:UC知道 时间:2024/06/23 00:50:08
for(i=0;i<5;i++)
{
while(ch!=EOF)
{
ch=fgetc(fp);
if(ch=='|') sum++;
if(sum==shuzu[i]) putchar(ch);
}
rewind(fp); //这里rewind无法让让内部指针回到文件头
}
全部代码
#include"stdio.h"
#include"stdlib.h"
#include"time.h"
#include"conio.h"

void pint()
{
FILE *fp;
int shuzu[5],sum=0;
char ch;
if((fp=fopen("D:\\a","r"))==NULL)
return;

srand(time(NULL));
for(int i=0; i<5; i++)
{
timu[i]=rand()%5;
for(int j=0; j<i; j++)
{
if(shuzu[i]==shuzu[j])
{
i--;
break;
}
}
}

for(i=0;i<5;i++)
{
while(ch!=EOF)
{
ch=fgetc(fp);
if(ch=='|') sum++;
if(sum==timu[i]) putchar(ch);
}
rewind(fp);
}

}

在rewind之前,先给ch赋一个值

比如
ch = 0;

执行最后一次的时候ch应该是EOF
而你while条件就是先判这个,结果直接跳出了

rewind不可能失去作用,建议你检查代码的其他部分。或者你提供全部代码我看看

编译都无法通过,变量timu未定义:
timu[i]=rand()%5;