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

Чтение из файла в Матрицу - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Программа работы с файлом, отображенным в память http://www.cyberforum.ru/cpp-beginners/thread1139846.html
у меня есть проблемка, дана программа в методичке, нужно откомпилировать, я питался что-то сделать, но выскакует одна ошибка, прошу вашей помощи!!!Пожалуйста! вот методичка(лаба 4) и скрин ошибки. //#include "EvryThng.h" //#include "Everything.h" #define BUF_SIZE 160
C++ Почему не работает наследование? Пытаюсь присвоить полям производного класса поля базового,но выводит мусор. В чем проблема? #include "stdafx.h" #include <iostream> #include <cstring> #include <cstdio> #include <cmath> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread1139838.html
Error C3861 delete_list идентификатор не найден C++
Помогите разобраться с ошибкой, ругается на delete_list(&tail); #include "stdafx.h" #include <iostream> using namespace std; #include <conio.h> struct list2 { char name_nach; char name_konech;
C++ Error C2440 невозможно преобразовать char в char
двунаправленный список помогите разобраться с ошибкой #include "stdafx.h" #include <iostream> using namespace std; #include <conio.h> struct list2 { char name_nach;
C++ Написать программу мониторинга объявлений с сайта ati.su http://www.cyberforum.ru/cpp-beginners/thread1139819.html
Здравствуйте! я хочу попробовать написать программу мониторинга объявлений с сайта ati.su с внедрением antigate . Подскажите пожалуйста как и в чем это лучше исполнить. В программировании по нулям.
C++ Передать инициализированный std::vector конструктору базового класса В общем появилась одна проблема. Никак не пойму как можно сделать. В общем дело такое: 1) Есть класс Coord, который содержит координаты. #ifndef COORD_H #define COORD_H class Coord { public: Coord(int, int); int getX(){return x;} подробнее

Показать сообщение отдельно
о_О_Кто_здесь
11 / 11 / 1
Регистрация: 06.06.2011
Сообщений: 152
06.04.2014, 19:59  [ТС]     Чтение из файла в Матрицу
alsav22,
Добрый день! Извиняюсь, что не могу ясно выразиться.

Откинем все.

Есть файл с данными.
Кликните здесь для просмотра всего текста

3 2 -5 -1 2 -1 3 13 1 2 -1 9
1 2 -1 9 2 -1 3 13 3 2 -5 -1
1 2 -1 9 2 -1 3 -5 3 2 -5 -1
1 2 -1 9 0 -1 3 -5 3 2 -5 -1
1 2 -1 9 0 -5 3 -5 3 2 -5 -1
1 2 -1 9 0 -5 5 -5 3 2 -5 -1
1 2 -1 9 0 -5 5 -5 3 2 -5 -1
1 2 -1 9 0 -5 5 -5 3 2 -5 -28
1 2 -1 9 0 -5 5 -5 0 2 -5 -28
1 2 -1 9 0 -5 5 -5 0 -4 -5 -28
1 2 -1 9 0 -5 5 -5 0 -4 -2 -28
1 2 -1 9 0 -5 5 -5 0 -4 -2 -28
1 2 -1 9 0 -5 5 -5 0 -4 -2 -24
1 2 -1 9 0 -5 5 -5 0 0 -2 -24
1 2 -1 9 0 -5 5 -5 0 0 -6 -24


Эти данные сейчас я вывожу так: при помощи:
вот рабочий код загружающий из файла out.txt лежащем в папке с проектом, при нажатии вводе >:

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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#include <iostream>
#include <ctime>
#include <fstream>
#include <iomanip>
#include <string>
#include <windows.h>
#include <vector>
 
using namespace std;
ios::pos_type p;
streampos pos;
 
 
void DisplayMatrix(double **A, double *B, int& n, int& m)
{
    cout << "\n" << endl;
    {
        for (int i = 0; i < n; i++)
        {
 
            for (int j = 0; j < m; j++)
                cout << setw(9) << A[i][j];
            cout << setw(9) << " = ";
            cout<< setw(9) << B[i];
            cout << endl << endl;
        }
    }   
}
 
 
void ShowHelp()
{
    //system("cls");
    cout << "Для дальнейше работы следуйте инструкции: " << endl;
    cout << "Нажмите '>', для вывода массива по шагам" << endl;
    cout << "Нажмите '<', для возврата предыдущего шага сортировки массива" << endl;
    cout << "Нажмите 'e', если вы хотите закончить сортировку\n" << endl;
}
void PreviousStep() //Наш массив на предыдущем шаге сортировки;
{
    //if (state > 0)
    //state--;
}
void NextStep()    //Наш массив на следующем шаге сортировки;
{
    //if (state < statesCount - 1)
    //  state++;
}
 
void Step(int& n, int &m)
{
    std::ifstream in("out.txt");
    if (!in.is_open())
    {
        std::cout << " Файл " << "out.txt" << " не был открыт для чтения. ";
        return;
    }
        double **A2 = new double *[n], *B2 = new double[n]; //инициализация динамических массивов
    for (int i = 0; i < n; i++)
        A2[i] = new double[m];
    while (true)
    {
        char command;
        cout << " Введите команду: "; cin >> command;
        system("cls");
 
 
        switch (command)
        {
        case '>': //если ввели > из файла выводим загружаем 1 строку в матрицу и выводим на экран.
 
            //p = in.tellg();
        //  pos = in.tellg() / sizeof(in);
            cout << " Текущая позиция pos" << pos << endl;
 
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    in >> A2[i][j];
                }
                in >> B2[i];
            }
            DisplayMatrix(A2, B2, n, m);
 
            if (in.ignore(462, '\n')) // игнорим первую строку, чтобы при повторном нажатии > считалась следующая строчка в матрица и показалась на экран.
    
            break;
        case '<': //при нажатии на < нужно прочитать строчку которая была до этого. т.е. если читается вторая строка( матрица) то показать первую. И так крутить в любой момент.
            cout << " Текущая позиция " << pos << endl;
            //in.seekg(pos);
            
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < m; j++)
                {
                    in >> A2[i][j];
                }
                in >> B2[i];
 
            }
            DisplayMatrix(A2, B2, n, m);
            break;
        case 's':
            //  SaveToFile();
            cout << "\nПроизведено сохранение всех шагов сортировки в файл output.txt\n" << endl;
            //getch();
            break;
        case 'e':
            return;
        }
    }
    in.close();
}
 
 
int main()
{
    setlocale(LC_ALL, "Russian");
    int n, m;
    cout << "****************************************************************" << endl;
    cout << "\n" << " Введите размерность матрицы NxM " << endl;
    cout << " n= ";
    while (true)
    {
        cin >> n;
        if (cin.good())
        {
            cin.ignore(10, '\n');
            break;
        }
        cin.clear();
        cout << " Неправильный ввод данных " << endl;
        cin.ignore(10, '\n');
        cout << " Введите n заного: ";
    }
    cout << " m= ";
    while (true)
    {
        cin >> m;
        if (cin.good())
        {
            cin.ignore(10, '\n');
            break;
        }
        cin.clear();
        cout << " Неправильный ввод данных " << endl;
        cin.ignore(10, '\n');
        cout << " Введите m заного: ";
    }
    double **A = new double *[n], *B = new double[n]; //инициализация динамических массивов
    for (int i = 0; i < n; i++)
        A[i] = new double[m];
    
    ShowHelp();
    Step(n, m);
    system("pause");
    return 0;
}
т.е. Из файла, при вводе в консоль ">" из файла загружаются данные (первая строчка 3 2 -5 -1 2 -1 3 13 1 2 -1 9) в массив массивов и выводится на экран. в виде:

3x+2y-5z=-1
2x-y+3z=13
x+2y-z=9

http://www.cyberforum.ru/attachments/385210d1396722019

Далее строчка игнорится
C++
1
in.ignore(462, '\n')
и при повторном чтении читается из файла вторая строчка. и т.д.
вот пример: Чтение из файла в Матрицу

НО как при вводе "<" вернутся назад? не получается! Хочу читать уже прочитанную строку ранее из файла. и показать пользователю.
Что в итоге, получается, при нажатии матрица как будто только считается и пользователь наблюдает это. (естественно я добавлю комментарии).
Да, немного матрица не так считает, но итог верен. Это поправимо. Проблема в пошаговом режиме.
Или может подскажите мне другой вариант?

У меня решается матрица в массив массивов и сохраняется в файл. далее я вот так вот извращаюсь.
Суть задания решения матрицы гауссом, обучая пользователя этому методу и главный критерий пользователь сам должен жать на кнопки вперед назад и т.д.

дали пример программы на сортировке: Пример работы.rar там, тест, теория, и 2 сортировки. на это должен быть похож мой проект. Вот я и мучаюсь с шагами.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru