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

Задача

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

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

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

сортирует строки матрицы по возрастанию первого элемента (если элементы равны, по второму и т.д.)

находит ранг матрицы и выводит результат на консоль в формате <номер матрицы> <ранг матрицы>

находит определитель матрицы и выводит результат на консоль в формате <номер матрицы> <определитель матрицы>

сохраняет отсортированные матрицы в новом файле.

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

Параметры

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

input_file

commands

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

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

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

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

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

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

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

Пример файла

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

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

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

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