Записать числа из файла в динамически созданный массив - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Итак есть у меня файл heap.txt в котором 11 чисел:

23 6 11 12 17 8 7 11 12 14

Как показано ниже в коде, я открыл файл, посчитал количество чисел в этом файле и присвоил это значениние переменной j.Закрыл файл, выделил память под будущий массив размером j. Снова открыл файл и хочу поочередно, записать данные числа в массив array. Вот тут то и проблема. Может кто подскажет как справиться с данной задачей?
Листинг программы
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #define ERROR_OPEN_FILE -3
  4. int main(){
  5. int j = 0,i;
  6. int d;
  7. FILE *file = fopen("heap.txt","rw");
  8. if(file == NULL){
  9. printf("Error opening file");
  10. exit(ERROR_OPEN_FILE);
  11. }
  12. while(fscanf(file,"%d",&d)==1){
  13. j++;
  14. }
  15. fclose(file);
  16. int *array = (int*)malloc(sizeof(int)*j);
  17. file = fopen("heap.txt","rw");
  18. if(file == NULL){
  19. printf("Error opening file");
  20. exit(ERROR_OPEN_FILE);
  21. }
  22. while(fscanf(file,"%d",&d)==1){
  23. //??????????????????????????????????????
  24. }
  25. fclose(file);
  26. printf("j = %d\n",j);
  27. for(i=0;i<j;i++)printf("%d\n", array[i]);
  28. return 0;
  29. }

Решение задачи: «Записать числа из файла в динамически созданный массив»

textual
Листинг программы
  1. i = 0;
  2. while(i < j) {
  3.     fscanf(file, "%d", &array[i]);
  4.     i++;
  5. }

Объяснение кода листинга программы

  1. Объявляется переменная i типа int и инициализируется значением 0.
  2. В цикле while происходит чтение чисел из файла file в массив array.
  3. Для каждого чтения числа в массив array увеличивается значение переменной i на 1.
  4. Цикл while выполняется до тех пор, пока значение переменной i меньше значения переменной j.
  5. Значение переменной j не используется в данном коде.
  6. В данном коде не обрабатываются возможные ошибки при чтении файла или при выделении памяти под массив.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы