Как feof () работает точно? - PullRequest
0 голосов
/ 04 июня 2019

Я написал этот код, и он читает файл, получает его числа и печатает их в массив. Когда он попадает в конец файла, вместо остановки цикла он вставляет «0,00000» в мой массив. Что мне здесь не хватает? В моем файле 9 строк, а моя переменная i заканчивается значением 10, что неожиданно, поскольку начинается с 0 и должно заканчиваться на 9. Поэтому я предполагаю, что while работает над еще одним циклом, когда он достигает EOF.

float arranjo[500];
int i=0;
FILE * A = fopen ("numeros_n.txt", "r");
while (!feof(A)){
        fscanf(A, "%f", &arranjo[i]);
        printf("%f\n", arranjo[i]);
        //o contador i passa para a próxima posição do vetor e indiretamente diz quantos números foram armazenados no vetor
        i++;

}

fclose(A);
...