I'm trying to read some numbers in C from a text file which contains 1000 lines of numbers such as:
-340,495,-153,-910,835,-947
-175,41,-421,-714,574,-645
-547,712,-352,579,951,-786
419,-864,-83,650,-399,171
...
but when I execute the code I see the i
variable starts at 901
instead of 0
so it reads the numbers from the point i=901
to i=999
. This is where I am experiencing problems.
I've tried to use a while
loop instead of a for
loop to avoid an extra i
variable:
while(!feof(file_in)){
fscanf(file_in,"%d%*c%d%*c",&a[0],&a[1]);
fscanf(file_in,"%d%*c%d%*c",&b[0],&b[1]);
fscanf(file_in,"%d%*c%d%*c",&c[0],&c[1]);
printf("A(%d,%d) I=%d\n",a[0],a[1],i);
printf("B(%d,%d) I=%d\n",b[0],b[1],i);
printf("C(%d,%d) I=%d\n",c[0],c[1],i);
}
This is the part of the code I'm having hard time with:
int main(void) {
FILE *file_in;
int a[2];
int b[2];
int c[2];
file_in = fopen("triangles.txt","r");
if (file_in == NULL){
printf("Can't open file for reading.\n");
exit(0);
}
else{
for(int i=0;i<1000; i++) {
fscanf(file_in,"%d%*c%d%*c",&a[0],&a[1]);
fscanf(file_in,"%d%*c%d%*c",&b[0],&b[1]);
fscanf(file_in,"%d%*c%d\n",&c[0],&c[1]);
printf("A(%d,%d) I=%d\n",a[0],a[1],i);
printf("B(%d,%d) I=%d\n",b[0],b[1],i);
printf("C(%d,%d) I=%d\n",c[0],c[1],i);
}
fclose(file_in);
}
return 0;
}
What I expect:
A(-340,495) I=0
B(-153,-910) I=0
C(835,-947) I=0
A(-175,41) I=1
...
What I get:
B(-225,-818) I=901
C(-808,-657) I=901
A(-279,-34) I=902
B(-533,-871) I=902
...