Прочитать матрицу из файла - C (СИ) (77448)
Формулировка задачи:
Нужно написать функцию, считывающую из текстового файла матрицу 5x5 для продолжения работы уже с матрицей. Только операции работы с файлами нужно языка Си...
Решение задачи: «Прочитать матрицу из файла»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#define SIZE 5
int main(int argc, char ** argv) {
int matrix[SIZE][SIZE];
int i, j;
FILE * file = fopen("E:\\matrix.txt", "r");
if (!file)
exit(EXIT_FAILURE);
for(i = 0; i < SIZE && !feof(file); i++) {
for(j = 0; j < SIZE && !feof(file); j++) {
fscanf(file, "%d", &matrix[i][j]);
printf("%d ", matrix[i][j]);
}
putchar('\n');
}
fclose(file);
return (EXIT_SUCCESS);
}
Объяснение кода листинга программы
Объяснение:
- #include
, #include - подключают необходимые библиотеки для работы с вводом/выводом и обработкой ошибок. - #define SIZE 5 - определяет размер матрицы.
- int main(int argc, char argv)** - объявляет точку входа в программу.
- int matrix[SIZE][SIZE] - объявляет двумерный массив (матрицу) типа int размером SIZE на SIZE.
- int i, j; - объявляет переменные для циклов.
- *FILE file = fopen(
E:\\matrix.txt,r);** - открывает файлmatrix.txtдля чтения. - if (!file) - проверяет, открылся ли файл. Если нет, то программа завершается с ошибкой.
- for(i = 0; i < SIZE && !feof(file); i++) { - цикл по первым SIZE строкам матрицы.
- for(j = 0; j < SIZE && !feof(file); j++) { - цикл по первым SIZE столбцам матрицы.
- fscanf(file,
%d, &matrix[i][j]); - считывает из файла целочисленное значение и сохраняет его в соответствующую ячейку матрицы. - printf(
%d, matrix[i][j]); - выводит значение ячейки матрицы на экран. - putchar('\n'); - переносит строку на новую строку.
- fclose(file); - закрывает файл.
- return (EXIT_SUCCESS); - возвращает успешный статус программы.
В результате выполнения программы, матрица будет прочитана из файла
matrix.txtи выведена на экран.