Чекер для работы с матрицами в текстовых файлах

Задача

Общая постановка задачи

Обработка матриц, записанных в файле.

Требуется реализовать программу, которая:

перемножает матрицы (произвольное количество матриц): первую и вторую, их произведение с третьей и т.д.

транспонирует матрицы.

находит ранг каждой матрицы и выводит его на консоль.

сохраняет результат в новом файле.

(число здесь идентифицирует номер команды)

Параметры

Программа получает параметры из входного потока (проверять на корректность не требуется). Параметры:

input_file

commands

input - текстовый файл

commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле.

Программа должна проверять на корректность размеры матриц. В случае, если размеры некорректны, то:

операционной системе возвращается ненулевой код возврата (return в main)

не создается выходного в файла

выводится сообщение об ошибке «Fail with <номер матрицы>».

сообщение об ошибке выводится для каждой матрицы отдельное.

Пример файла

Элементы строки матрицы отделены пробелами.

Матрицы отделены друг от друга 3мя символами перевода строки.

1 2 3 4 5 3 4 5 6 0 4 6 10 -1 4 -2 -3 9 0 4 5 -3 9 5 -4 -5 -6 0 9 9

! Данный файл не вызовет ошибок.