why it can not exit the while loop
Here is an attachment named bunny.pdf. It is an OBJ file is read by this program.
The problem now is it can not exit the while loop while it is running. And I do not why it read twice at each line of the OBJ file if I did not use fseek().
Code:
#include <stdio.h>
typedef struct{
float p1;
float p2;
float p3;
}pointv;
typedef struct{
int ia;
int ib;
int ic;
}pointf;
pointv vtemp;
pointf ftemp;
pointv va[510];
pointf fa[1010];
int main(void){
FILE *fp;
int i=1;
int j=0;
char mark;
// int end;
fp=fopen(".\\bunny_1k.obj","rb+");
fscanf(fp,"%c %f %f %f", &mark, &vtemp.p1, &vtemp.p2, &vtemp.p3);
va[i].p1=vtemp.p1;
va[i].p2=vtemp.p2;
va[i].p3=vtemp.p3;
while( mark!='f' ){
fprintf(stdout,"%c %f %f %f\n", mark, vtemp.p1, vtemp.p2, vtemp.p3);
i+=1;
fscanf(fp,"%c %f %f %f", &mark, &vtemp.p1, &vtemp.p2, &vtemp.p3);
va[i].p1=vtemp.p1;
va[i].p2=vtemp.p2;
va[i].p3=vtemp.p3;
}
fa[j].ia=(int)vtemp.p1;
fa[j].ib=(int)vtemp.p2;
fa[j].ic=(int)vtemp.p3;
while( !feof(fp) ){
j+=1;
fscanf(fp,"%c %d %d %d", &mark, &ftemp.ia, &ftemp.ib, &ftemp.ic);
fa[j].ia=ftemp.ia;
fa[j].ib=ftemp.ib;
fa[j].ic=ftemp.ic;
fprintf(stdout,"%c %d %d %d\n",mark, ftemp.ia, ftemp.ib, ftemp.ic);
}
return 0;
}