Я пытаюсь сохранить 10 десятичных чисел из текстового файла в массив.Моя проблема в том, что он пропускает несколько чисел, пока не достигнет конца строки.
Я отладил программу, распечатав количество циклов, которые программа выполнила для достижения конца файла, и вывел 10. Иэто правильное значение количества чисел в файле.Но когда я отображаю значения элементов массива, там только 5 чисел.Когда я сравниваю сохраненные номера с номерами текстовых файлов, получается, что несколько номеров пропускаются.
Вот мой код ниже:
#include <stdio.h>
#include <stdlib.h>
main(void)
{
FILE *inp; /* pointer to input file */
double item;
int cnt=0,y,d,i;
double array[300],swap;
/* Prepare files for input */
inp = fopen("C:/Users/infile.txt", "r");
/* Read each item */
while ( (fscanf(inp, "%lf", &item) == 1) && (!feof(inp)) ) {
array[cnt] = item;
cnt++;
}
for (int i = 0; i < cnt; i++)
{
printf("%lf\n",array[i]);
i++;
}
printf("%d",cnt);
fclose(inp); /* Close the files */
return (0);
}
-В текстовом файле есть 10 двойных чисел в диапазоне от 0 до 101 (например, 15.12563)
-Значение длявремя цикла цикла while равно 10 (cnt достигает 10)
- Мой код хранит только 5 чисел вместо 10, что пропускает остальные 5 чисел, но говорит, что оно достигло последнего значения в строке10.
Это значения в текстовом файле:
21.388000
12.372628
21.961366
85.616285
30.123001
30.271053
70.733982
35.867327
48.339462
82.459009
Если я оставлю некоторую ключевую информацию омоя проблема, пожалуйста, спросите.Спасибо