Считать файл в массив - C (СИ)

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

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

Здравствуйте. Подскажите пожалуйста, как считать через сканф с файла массив в языке СИ...очень нужно.

Решение задачи: «Считать файл в массив»

textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
 
#define size 20
 
int main()
{
    char* file_name = (char*)malloc(sizeof(char) * size);
    printf("Enterh the name of the file\n");
    scanf("%s", file_name);
    FILE* file = fopen(file_name, "w");
    if (!file)
    {
        printf("File name invalid\n");
        return 1;
    }
    int* mas = (int*)malloc(sizeof(int) * size);
    int i = 0, k = 0;
    while( feof(file) )
        fscanf(file, "%d", &mas[i++]);
    for (k = 0; k < i; k++)
        printf("%d", mas[k]);
    _getch();
    free(mas);
    free(file_name);
    return 0;
}

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

  1. Подключение необходимых библиотек для работы с файлами и памятью.
  2. Определение размера массива в 20 элементов.
  3. Выделение памяти под строку, в которую будет записываться имя файла.
  4. Запрос у пользователя имени файла и запись этого имени в выделенную память.
  5. Открытие файла с указанным именем на запись.
  6. Проверка на корректность открытия файла, если файл не открылся, выводится сообщение об ошибке и программа завершается.
  7. Выделение памяти под массив целых чисел на 20 элементов.
  8. Инициализация двух переменных, i - для отслеживания количества прочитанных элементов, k - для вывода элементов массива.
  9. Чтение данных из файла в массив до тех пор, пока не будет достигнут конец файла (feof).
  10. Вывод содержимого массива на экран.
  11. Ожидание нажатия клавиши для завершения работы программы.
  12. Освобождение памяти, выделенной под массив и строку.
  13. Возврат 0, что означает успешное завершение программы.

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


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

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

7   голосов , оценка 4.714 из 5
Похожие ответы