Как считать матрицу из текстового файла - C (СИ)
Формулировка задачи:
привет народ, помогите!!!
Как считать в С из текстового файла матрицу при том что я сам указываю ее размерность. Матрица nxn
Решение задачи: «Как считать матрицу из текстового файла»
textual
Листинг программы
#include <stdlib.h>
#include <stdio.h>
void main()
{
int i,j,k,n;
FILE *f;
int **arr;
printf("N = ");
scanf("%d",&n);
arr = (int**)malloc(n * sizeof(int));
for(i=0;i<n;++i)
{
arr[i]=malloc(n*sizeof(int));
}
f = fopen("out.txt","r");
for(i = 0; i < n; i++)
{
for(j = 0; j<n; j++)
fscanf(f,"%d",&arr[i][j]);
}
for(i = 0; i < n; i++)
{
for(j = 0; j<n; j++)
printf("%d ",arr[i][j]);
printf("\n");
fclose(f);
}
}
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
i,j,k,n- для хранения количества строк, столбцов и индексов матрицы, а также общего размера матрицы.f- для открытия файла.arr- для хранения адресов матрицы.
- Пользователю предлагается ввести размер матрицы (
n). - Выделена память под матрицу
arr. - В цикле
forпроисходит выделение памяти под каждый элемент матрицыarr[i]. - Открывается файл
out.txtдля чтения. - В цикле
forпроисходит чтение значений из файла и сохранение их в матрицеarr. - В цикле
forпроисходит вывод значений матрицыarrна экран. - Файл закрывается.