Написать програмный код С++ ЗАДАЧА : Значения элементов двумерного динамического массива из n строк и m столбцов скопировать в одномерный динамический массив размером m*n. Копирование проводить по
строкам начиная с первой;
Исходные данные ввести из текстового файла;
Результат вывести на экран и в текстовый файл;
Программа должна содержать комментарии;
#include <iostream>
#include <fstream> // Для работы с файлами
#include <cstdlib> // Для функции exit()
using namespace std;
int main()
{
// Открываем файл для чтения
ifstream input_file("input.txt");
if (!input_file.is_open()) {
// Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу
cerr << "Error: unable to open input file" << endl;
exit(1);
}
// Считываем количество строк и столбцов
int n, m;
input_file >> n >> m;
// Создаем двумерный динамический массив
int** array = new int*[n];
for (int i = 0; i < n; i++) {
array[i] = new int[m];
}
// Считываем значения элементов из файла
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
input_file >> array[i][j];
}
}
// Создаем одномерный динамический массив
int* new_array = new int[n * m];
// Копируем значения элементов из двумерного массива в одномерный
int k = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
new_array[k++] = array[i][j];
}
}
// Закрываем файл
input_file.close();
// Открываем файл для записи
ofstream output_file("output.txt");
if (!output_file.is_open()) {
// Если файл не удалось открыть, выводим сообщение об ошибке и завершаем программу
cerr << "Error: unable to open output file" << endl;
exit(1);
}
// Выводим значения элементов одномерного массива в файл
for (int i = 0; i < n * m; i++) {
output_file << new_array[i] << " ";
}
output_file << endl;
// Закрываем файл
output_file.close();
// Освобождаем выделенную память
for (int i = 0; i < n; i++) {
delete[] array[i];
}
delete[] array;
delete[] new_array;
return 0;
}
Не забудьте также проверить, что файлы input.txt и output.txt существуют и имеют нужные разрешения для чтения/записи.