С++: Нужна функция выводящая двухмерный массив в файл не затирая его, а дополняя через 1 строку.
Когда мы работаем с двухмерными массивами в C++, иногда возникает необходимость вывести эти массивы в файл, чтобы сохранить данные для последующего использования или анализа. Часто возникает вопрос: как записать массив в файл без его затирания и дополнить данные через 1 строку?
Для решения этой задачи мы можем использовать функцию в C++, которая открывает файл на запись и записывает данные в файл, не затирая его, а дополняя через 1 строку.
Вот небольшой пример функции, которая реализует эту логику:
#include <iostream>
#include <fstream>
void appendArrayToFile(int** arr, int rows, int cols, const std::string& filename) {
std::ofstream outputFile(filename, std::ios::app);
if (!outputFile.is_open()) {
std::cout << "Error opening file!" << std::endl;
return;
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
outputFile << arr[i][j] << " ";
}
outputFile << std::endl; // Перевод строки после каждой строки массива
}
outputFile.close();
}
int main() {
const int rows = 3;
const int cols = 3;
int** arr = new int*[rows];
for (int i = 0; i < rows; i++) {
arr[i] = new int[cols];
for (int j = 0; j < cols; j++) {
arr[i][j] = i + j; // заполнение массива данными
}
}
appendArrayToFile(arr, rows, cols, "output.txt");
// Освобождение памяти, выделенной под двухмерный массив
for (int i = 0; i < rows; i++) {
delete[] arr[i];
}
delete[] arr;
return 0;
}
В данном примере функция appendArrayToFile
открывает файл "output.txt"
в режиме добавления (std::ios::app
), то есть, если файл уже существует, данные будут добавлены в конец файла без его затирания. Если файл не существует, то он будет создан.
Затем функция проходится по каждому элементу массива и записывает его в файл с разделителями. После каждой строки массива добавляется переход на новую строку с помощью outputFile << std::endl;
.
В главной функции main
создается двухмерный массив и заполняется данными. Затем вызывается функция appendArrayToFile
, которая записывает массив в файл "output.txt"
. После завершения работы, память, выделенная под массив, освобождается.
Теперь вы можете использовать эту функцию, чтобы сохранить двухмерный массив в файл без его затирания и дополнить данные через 1 строку.
- Просить в молитвах у Бога: надо ли много или мало?
- Сколько должна платить соцзащита детское пособие по уходу за ребенком до 1,5 лет
- На чём можно проехать от Ж/д Саратов до Чернышевского 151?
- У меня нестабильное давление, имеет ли смысл носить магнитный браслет?
- Подарок для девочки-подростка
- Люди дорогие, мне важно ваше мнение. Оцените, плиз, мою песенку.