Считать матрицу из файла - C (СИ)
Формулировка задачи:
Подскажите, пожалуйста, как считать матрицу 6 х 2 из файла a.txt и как эту же матрицу вывести в файл b.txt
Решение задачи: «Считать матрицу из файла»
textual
Листинг программы
#include <stdio.h>
int main()
{
const int rows = 2;
const int cols = 6;
int matrix[rows][cols];
int i, j;
FILE *out;
FILE *file = fopen("a.txt", "r");
out = fopen("b.txt", "w");
for (i = 0; i < rows && !feof(file) && !ferror(file); i++)
{
for (j = 0; j < cols && !feof(file) && !ferror(file); j++)
{
if (!fscanf(file, "%d", &matrix[i][j]))
{
fprintf(stderr, "Error reading file");
}
fprintf(out, "%d ", matrix[i][j]);
}
fputc('\n', out);
}
return fclose(file) && fclose(out);
}
Объяснение кода листинга программы
В этом коде:
- Задаются размеры матрицы: 2 строки и 6 столбцов.
- Создается двумерный массив
matrixразмером 2x6. - Открывается файл
a.txtдля чтения и файлb.txtдля записи. - Запускается цикл по всем элементам матрицы.
- Для каждого элемента сначала проверяется успешность чтения из файла
a.txt, - Если чтение прошло успешно, то значение записывается в файл
b.txtи выводится на экран. - После каждой строки матрицы выводится символ новой строки.
- После завершения чтения всех элементов закрываются файлы
a.txtиb.txt. - Возвращается значение, являющееся результатом закрытия файлов.