Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 21:19   #1
Сольвейг
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 17
По умолчанию Записать полученную матрицу в файл (C++)

Не получается записать полученную матрицу в файл. Записывает только 1-ую строку матрицы.

Подскажите, пожалуйста, как записать в файл всю матрицу целиком. Спасибо!
Код:
#include <stdio.h>
 #include <iostream>
 using namespace std;
 #include <fstream>
 
 void main(void)
 {
 int m, n;
 
 fstream file;
 file.open("C:\\out.txt", ios::out);
 
 cout << "Vvedi kol-vo strok" << endl;
 cin >> m;
 cout << "Vvedi kol-vo stolbtsov" << endl;
 cin >> n;
 
 int** array_2d;
 int number = 1;
 
 // Создаем массив 
 array_2d = new int*[m];
 
 
 for (int i = 0; i < n; i++)
 {
 array_2d[i] = new int[n];
 }
 
 // Заполняем массив
 for (int i = 0; i < m; i++)
 {
 for (int j = 0; j < n; j++) 
 {
 // Приводим матрицу в шахматный порядок 
 if ((i+j)%2 != 0)
 {
 array_2d[i][j] = 0;
 }
 
 else array_2d[i][j] = number++;
 
 file << array_2d[i][j] << " ";
 cout << array_2d[i][j] <<"";
 }
 
 file << "\n";
 
 file.close();
 
 cout << endl;
 
 };
 return;
 }
Сольвейг вне форума Ответить с цитированием
Старый 11.12.2011, 09:29   #2
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

Код:
array_2d = new int*[m];
Значит, массив содержит m строк
Код:
 for (int i = 0; i < n; i++)
 {
 array_2d[i] = new int[n];
память выделяем только под n строк
Код:
file << "\n";
 
 file.close();
после вывода каждой строки закрываем файл. Сколько строк будет в файле?
rrrFer вне форума Ответить с цитированием
Старый 11.12.2011, 09:32   #3
rrrFer
Санитар
Старожил
 
Аватар для rrrFer
 
Регистрация: 04.10.2008
Сообщений: 2,577
По умолчанию

память из под массива забываем освободить
Код:
};
не знаем зачем тут нужен пустой оператор
Код:
#include <stdio.h>
не можем объяснить зачем эта строчка в вашей программе
Код:
 void main(void)
и тут мне тоже что-то не нравится
rrrFer вне форума Ответить с цитированием
Старый 11.12.2011, 10:21   #4
Сольвейг
Пользователь
 
Регистрация: 10.12.2011
Сообщений: 17
По умолчанию

Сколько строк не известно, массив динамический, размерность вводится с консоли.
Сама задача была такая:
"Заполните матрицу A[m,n] шахматном порядке: клетки одного цвета заполнены нулями, а другого цвета - заполнены числами натурального ряда сверху вниз, слева направо. В левом верхнем углу записано число 1.
Результаты работы выводятся на экран и записываются в файл out.txt"
Сольвейг вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Символьный файл F. Записать в файл G компоненты файла F в обратном порядке,сначала все нечетные, затем чётные. Паскаль. ICE_LADY Помощь студентам 0 08.06.2011 17:32
Матрица.Как записать матрицу составленную из 3 единичных матриц?? Namyola Паскаль, Turbo Pascal, PascalABC.NET 2 02.06.2011 16:32
Как записать картинку в матрицу? 271089 Общие вопросы Delphi 3 21.12.2010 00:32
где браузер хранит полученную информацию? Arassir HTML и CSS 2 28.04.2010 21:39
Как записать файл в файл программы? Хамяг Общие вопросы Delphi 2 02.11.2008 16:01