Я пытаюсь прочитать некоторые числа в C из текстового файла, который содержит 1000 строк чисел, таких как:
-340,495,-153,-910,835,-947
-175,41,-421,-714,574,-645
-547,712,-352,579,951,-786
419,-864,-83,650,-399,171
...
, но когда я выполняю код, я вижу, что переменная i
начинается с901
вместо 0
, поэтому он читает числа от точки i=901
до i=999
.Вот где у меня возникают проблемы.
Я пытался использовать цикл while
вместо цикла for
, чтобы избежать дополнительной переменной i
:
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);
}
Это часть кода, с которой мне трудно работать:
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;
}
Что я ожидаю:
A(-340,495) I=0
B(-153,-910) I=0
C(835,-947) I=0
A(-175,41) I=1
...
Что я получу:
B(-225,-818) I=901
C(-808,-657) I=901
A(-279,-34) I=902
B(-533,-871) I=902
...