У меня есть следующие функции:fgets читает слишком много символов, чем существует
void writeResults(FILE* fp, FILE* fpw, Vector w, int size) {
Vector x;
while (1) {
char line[MAX_DIMENSION]; //max dimension is 200
if((fgets(line,MAX_DIMENSION,fp)) == NULL) { //EOF
return;
}
else {
int i=0;
while (line[i]!='\0') {
printf("% d %c\n",i,line[i]); //print to check it
i++;
}
}
}
}
Строка файла он читает это:
1,1
2,2
Однако при печати каждого символа до «\ 0» Я получаю этот выход:
0 1
1 ,
2 1
3
4
0 2
1 ,
2 2
3
4
кто-нибудь есть ключ к пониманию того, почему он читает дополнительные 3 и 4 символов? (в файле нет лишних пробелов).
Примечание: файл был открыт следующим образом:
FILE* fp = fopen(fileIn, "r");
if (fp == NULL) {
perror("Couldn't open File");
exit(errno);
}
Не забудьте выбрать ответ, который вам больше всего помог - выделите белый галочку (галочку) на LHS. И делайте это по всем вопросам, где у вас есть полезный ответ. Это часть того, чтобы быть хорошим гражданином на SO. –