Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
kol
23 / 9 / 1
Регистрация: 30.01.2015
Сообщений: 175
#1

Запись двумерного массива в файл - C++

11.07.2015, 19:26. Просмотров 574. Ответов 3
Метки нет (Все метки)

В общем нужно записать двумерный массив в фаил, но что то ни как не получается.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//magicQuad.h
#ifndef MAGICQUAD_H
#define MAGICQUAD_H
#include <iostream>
using std::cout;
using std::endl;
class magicQuad
{
private:
    // n = 4
    static const int SUM = 34; // sum = n(n^2+1)/2
    int a,b,c; // sum = 4a+6(b+c)
    int ** result;
 
    /*  result matrix
     *  a ------------- a + 3b + c ---- a + 3c ------- a + 3b + 2c
     *  a + b + 3c ---- a + 2b + 2c --- a + b -------- a + 2b +c
     *  a + 3b -------- a + c --------- a + 3b + 3c -- a + 2c
     *  a + 2b + 3c --- a + b + 2c ---- a + 2b ------- a + b + c
     */
public:
    magicQuad();
    void resultMatrix();
    void findQuad();
    ~magicQuad();
protected:
    void printQuad();
};
 
#endif // MAGICQUAD_H
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
//magicUqad.cpp
#include "magicquad.h"
 
magicQuad::magicQuad()
{
    a = 0;
    b = 0;
    c = 0;
 
    result = new int * [4];
    for(int i=0;i< 4;i++) result[i] = new int[4];
    resultMatrix();
}
 
void magicQuad::resultMatrix()
{
    result[0][0] = a;
    result[0][1] = a + 3*b + c;
    result[0][2] = a + 3*c;
    result[0][3] = a + 3*b + 2*c;
 
    result[1][0] = a + b + 3*c;
    result[1][1] = a + 2*b + 2*c;
    result[1][2] = a + b;
    result[1][3] = a + 2*b + c;
 
    result[2][0] = a + 3*b;
    result[2][1] = a + c;
    result[2][2] = a + 3*b + 3*c;
    result[2][3] = a + 2*c;
 
    result[3][0] = a + 2*b + 3*c;
    result[3][1] = a + b + 2*c;
    result[3][2] = a + 2*b;
    result[3][3] = a + b + c;
}
 
void magicQuad::findQuad()
{
    while(a != 16) // n = 4; n^2 = 16
    {
        a++;
        if((SUM - 4*a)%6 == 0) // SUM - 4*a = 6(b+c)
        {
            int temp = (SUM-4*a)/6;
            while(b<temp)
            {
                b++;
                c = temp - b;
                resultMatrix();
                printQuad();
                cout << endl;
            }
            b = 0;
            c = 0;
        }
    }
}
 
void magicQuad::printQuad()
{
    for(int i=0;i<4;i++)
    {
        for(int j =0;j<4;j++) cout << result[i][j] << "\t";
        cout << endl;
    }
}
 
magicQuad::~magicQuad()
{
    for(int i =0;i<4;i++) delete [] result[i];
    delete [] result;
}
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
//main.cpp
#include "magicquad.h"
#include <fstream>
 
 
int main()
{
    magicQuad any;
    any.findQuad();
 
    return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.07.2015, 19:26
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись двумерного массива в файл (C++):

Запись двумерного массива в файл - C++
Добрый день! Помогите пожалуйста с программой. Есть функция, в которой вводится двумерный массив в программу. А затем выводится на...

Запись двумерного массива в файл - C++
Дан целочисленный массив 7х7,нужно записать элементы массива в файл в 7 строк (по 7 элементов в строке)разделяя их пробелами.

Не получается реализовать запись двумерного массива в файл - C++
в общем тут такое дело делаю не получается сохранить двумерный массив в файл чтобы потом считать его оттуда. помогите реализовать. ниже...

Запись в бинарный файл двумерного строкового вектора и его считывание - C++
Ну ни в какую не могу понять эту работу с файлами( В чем проблема? Заранее спасибо #include &lt;iostream&gt; #include &lt;fstream&gt; ...

Запись из файла двумерного массива N x 2, где N -величина не постоянная - C++
Много тем пересмотрел, но везде массив имел постоянные размеры, тут же - количество строк может меняться. Подскажите как записать в массив...

Вывод двумерного массива в бинарный файл - C++
функция вывода: void outputMassiv (int **arr, int Nr, int Nc) {ofstream binfile(&quot;D:/txt.bin&quot;, ios::app | ios::binary); for...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
daert
1 / 1 / 2
Регистрация: 09.05.2014
Сообщений: 47
11.07.2015, 20:00 #2
А где сам вывод в файл то? Функция printQuad() выводит на экран данные

вывести в файл можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <fstream>
...
ofstream out("output.txt");
void magicQuad::printQuad()
{
    for(int i=0;i<4;i++)
    {
        for(int j =0;j<4;j++) out << result[i][j] << "\t";
        out << endl;
    }
out.close();
}
0
kol
23 / 9 / 1
Регистрация: 30.01.2015
Сообщений: 175
11.07.2015, 20:14  [ТС] #3
daert, В том то и проблема что я не знаю где его вставить. Так как ты написал не работает. Программа вычисляет все варианты массива, для получения магического квадрата и печатает их пока не переберет все abc.
Не совсем понял где мне разместить ofstream out("output.txt"). Если размещаю в h фаиле выдает ошибку.
0
daert
1 / 1 / 2
Регистрация: 09.05.2014
Сообщений: 47
12.07.2015, 11:23 #4
Какую ошибку выдаёт? а вы пробовали этот код в cpp добавить? ведь туда он и должен идти, т.к. функция printQuad() там описана
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.07.2015, 11:23
Привет! Вот еще темы с ответами:

Сортировка двумерного массива и заголовочный файл - C++
Помогите пожалуйста исправить ошибку. sort2.h: void sort2(int array,int n); sort2.cpp: #include &quot;sort2.h&quot;; #include...

Запись массива в файл - C++
Есть класс class Figure { protected: Figure() { penColor = Form1-&gt;ColorBox1-&gt;Selected;...

Запись массива в файл. - C++
Ребят, помогите. Завтра курсач сдавать. Есть массив структур. Как его в файл записать? Кидаю весь файл, не ругайтесь. //...

запись массива в файл - C++
Имеется структура в массиве. когда ввожу данные например: 2,3,4 7,8,5 то получаю 2 3 4 0 0 0 0 0 0 7 8 5 Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
12.07.2015, 11:23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru