Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
Другие темы раздела
C++ System.String. Можно ли из букв первого слова составить второе слово? https://www.cyberforum.ru/ cpp-beginners/ thread2415173.html
Задание следующее: Вывести сообщение "МОЖНО", если из букв введённой строки X можно составить введенную строку Y, при условии, что каждую букву строки X можно использовать один раз; и сообщение "НЕЛЬЗЯ" в противном случае. Нужно сделать его при помощи IndexOf. Есть такой вариант решения. Как переделать его под IndexOf? #include "stdafx.h"
Хочу создать Autoclicker C++
Здравствуйте, я бы хотел задать вопрос насчёт кода. Я хочу в автокликере сделать так, чтобы при выборе любой кнопки, например, F, кликер начинал работу. То есть, я нажал один раз F, зажал ЛКМ и он начинает работать, нажал F, зажал ЛКМ и он не работает. Вроде довольно просто, но у меня именно с ЛКМ не выходит, он начинает работать без остановки Вот сам код : while (true) { if...
C++ Вычислить значение функции https://www.cyberforum.ru/ cpp-beginners/ thread2415151.html
Написать программу (Очень прошу) Вычислить значение функции Если так будет удобней!!
C++ Удалить элементы, значение которых меньше среднего значения всех элементов массива удалить элементы, значение которых меньше среднего значения всех элементов массива с помощь динамических массивов, помогите. Я явно что-то делаю не так Мой код: #include "pch.h" #include <iostream> #include <ctime> using namespace std; int main() { https://www.cyberforum.ru/ cpp-beginners/ thread2415138.html
C++ Найти ошибки
Задание прикреплено. Вот код: #include <fstream> using namespace std; int n, i, j; int age, risk, b; void sort()
C++ Удалить четные элементы бинарного дерева Задание:Дано дерево. Удалить четные элементы. Никак не могу разобраться почему удаляется только первый чётный элемент,а не все,прошу помощи Код: #include <iostream> using namespace std; struct tree { int inf; https://www.cyberforum.ru/ cpp-beginners/ thread2415110.html
C++ Запись строки в массив Ув. программисты, Ниже прикрепляю код, который по задумке читает данные из текстового файла построчно, и далее сохраняет каждую строку в массив, чтобы далее было удобно работать с полученными строками с информацией из файла #include <iostream> #include <fstream> #include <string> using namespace std; https://www.cyberforum.ru/ cpp-beginners/ thread2415104.html C++ Ошибки во время работы деструкторов
Здравствуйте. Я давно не писал на плюсах, поэтому мог подзабыть как работать с указателями. В общем есть 2 класса. Первый хранит массив и его параметры class Word { int *word; double *vector;
C++ Преобразование последовательности чисел Задана последовательность, содержащая n целых чисел. Необходимо найти число, которое встречается в этой последовательности наибольшее количество раз, а если таких чисел несколько, то найти минимальное из них, и после этого переместить все такие числа в конец заданной последовательности. Порядок расположения остальных чисел должен остаться без изменения. Например, последовательность 1, 2, 3, 2,... https://www.cyberforum.ru/ cpp-beginners/ thread2415086.html C++ Как указать тип аргумента шаблона для функции? https://www.cyberforum.ru/ cpp-beginners/ thread2415085.html
#include <iostream> #include <windows.h> #include <vector> #include <stdexcept> #include <algorithm> using namespace std; void println() {
C++ Написать программу для однонаправленного линейного списка типа стек
Написать программу по созданию, добавлению, просмотру и решению поставленной задачи (в рассмотренных примерах это действие отсутствует) для однонаправленного линейного списка типа СТЕК. Реализовать сортировку стека. Решение поставленной задачи представить в виде блок-схемы. Во всех заданиях создать список из положительных и отрицательных случайных целых чисел. В созданном списке определить...
C++ Исправить ошибки в коде https://www.cyberforum.ru/ cpp-beginners/ thread2415079.html
Последовательностью Фибоначчи называется последовательность чисел F0 = 0, F1 = 1, … , Fk = Fk-1 + Fk-2 (k > 1). Требуется найти наибольший общий делитель двух чисел Фибоначчи. Входные данные Во входном файле INPUT.TXT записаны два целых числа i и j (1 ≤ i, j ≤ 10^6). Выходные данные В выходной файл OUTPUT.TXT выведите остаток от деления НОД чисел Fi и Fj на 10^9. Вот код:
0 / 0 / 0
Регистрация: 07.01.2019
Сообщений: 4
08.03.2019, 10:30  [ТС] 0

Передача вектора структур из класса в другой класс - C++ - Ответ 13385992

08.03.2019, 10:30. Показов 711. Ответов 4
Метки (Все метки)

Ответ

Folian, sry
Кликните здесь для просмотра всего текста

Read_FromFile заполняет вектор структур.
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
class Read_FromFile
{
 
protected:
 
    struct Values
    {
        string vnum;
        string name;
        string locale_name;
        string type;
        string subtype;
        string weight;
        string size;
        string antiflag;
        string flag;
        string wearflag;
        string immuneflag;
        string gold;
        string shop_buy_price;
        string refined_vnum;
        string refine_set;
        string magic_pct;
        string limittype0;
        string limitvalue0;
        string limittype1;
        string limitvalue1;
        string applytype0;
        string applyvalue0;
        string applytype1;
        string  applyvalue1;
        string  applytype2;
        string  applyvalue2;
        string  value0;
        string  value1;
        string  value2;
        string  value3;
        string  value4;
        string  value5;
        string  socket0;
        string  socket1;
        string  socket2;
        string  socket3;
        string  socket4;
        string  socket5;
        string  specular;
        string  socket_pct;
        string  addon_type;
        string  vnum_range;
    };
    vector <Values> Tables;
    
 
private:
 
    vector <string> temp;
    string filepath = "E:\\felige\\protowork\\SqlToTxt\\item_proto.sql";
public:
    //vector <Values> Tables;
    void SetNameFile()
    {
        cout << "Введите путь к файлу используйте по две кавычки!\b\n";
        cin >> filepath;
    }
    string GetNameFile()
    {
        return filepath;
 
    }
    void DumpFile()
    {
        fstream file(filepath);
        string buff;
        while (!file.eof())
        {
            getline(file, buff, '\n');
            temp.push_back(buff);
        }
 
        for (size_t i = 0; i < temp.size(); i++)
        {
            //cout << temp[i] << endl;
        }
 
        file.close(); // закрываем файл
    }
    const char pattern[749] = "INSERT INTO item_proto VALUES [(]" "[']" "(\\d+)" "[']" "[,]\\s+" "([\\w]+)" "[,]\\s+" "([\\w]+)" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+"  "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+""[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\-\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[,]\\s+" "[']" "(\\d+)" "[']" "[)]" "[\\D]*";
    //const char pattern[706] = "INSERT INTO item_proto VALUES [(]" "[']" "(\\d)" "[']" "[,]\\s+" "([\\w]+)" "[,]\\s+" "([\\w]+)" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+"  "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[)].";
    void Regular_pars()
    {
        Values buff;
        cmatch match;
        regex regular(pattern);
        
        for (size_t i = 0; i < temp.size(); i++)
        {
            if (regex_search(temp[i].c_str(), match, regular))
            {
                buff.vnum = match[1];
                buff.name = match[2];
                buff.locale_name = match[3];
                buff.type= match[4];
                buff.subtype = match[5];
                buff.weight = match[6];
                buff.size = match[7];
                buff.antiflag = match[8];
                buff.flag = match[9];
                buff.wearflag = match[10];
                buff.immuneflag = match[11];
                buff.gold = match[12];
                buff.shop_buy_price = match[13];
                buff.refined_vnum = match[14];
                buff.refine_set = match[15];
                buff.magic_pct = match[16];
                buff.limittype0 = match[17];
                buff.limitvalue0 = match[18];
                buff.limittype1 = match[19];
                buff.limitvalue1 = match[20];
                buff.applytype0 = match[21];
                buff.applyvalue0 = match[22];
                buff.applytype1 = match[23];
                buff.applyvalue1 = match[24];
                buff.applytype2 = match[25];
                buff.applyvalue2 = match[26];
                buff.value0 = match[27];
                buff.value1 = match[28];
                buff.value2 = match[29];
                buff.value3 = match[30];
                buff.value4 = match[31];
                buff.value5 = match[32];
                buff.socket0 = match[33];
                buff.socket1 = match[34];
                buff.socket2 = match[35];
                buff.socket3 = match[36];
                buff.socket4 = match[37];
                buff.socket5 = match[38];
                buff.specular = match[39];
                buff.socket_pct = match[40];
                buff.addon_type = match[41];
                buff.vnum_range = match[42];
                Tables.push_back(buff);
                //kekl++;
            }
            
 
        }
    }
 
};
класс второй,должен обрабатывать вектор Tables
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
class HexTranslator:protected Read_FromFile
{
 
private:
    string HexToString(string hex,string translated)
    {
 
        //hex = "0x4272656974736368776572742B38";
        int len = hex.length();
        string newString;
        for (int i = 0; i < len; i += 2)
        {
            string byte = hex.substr(i, 2);
            char chr = (char)(int)strtol(byte.c_str(), NULL, 16);
            newString.push_back(chr);
        }
        return newString;
    }
    string StringToHex(string name)
    {
        int len = name.length();
        string newStr;
        
        vector<char> bindata(name.c_str(), name.c_str() + name.size() );
        ostringstream oss;
        for (auto e : bindata) oss << std::hex << (e & 0xFF);
        string hexdata = oss.str();
        hexdata = "0x" + hexdata;
        cout << hexdata << std::endl;
 
        return hexdata;
    }
    struct dats
    {
        vector<string> game;
        vector<string> lang;
 
    };
    string findfile(string filename)
    {
        string temp = "\\";
        string path;
        char* buffer = new char[MAX_PATH];
        GetCurrentDirectoryA(MAX_PATH, buffer);
        path = buffer + temp + filename;
        return path;
    }
    void ReadFileClient(dats *stroki, string name)
    {
        fstream file(name);
        if (!file)
        {
            cout << "Файл " << name << " не открыт\n\n";
 
        }
        else
        {
        }
        string buff;
        bool read = true;
        while (!file.eof())
        {
 
            if (read)
            {
                getline(file, buff, '\t');
                stroki->game.push_back(buff);
                read = false;
 
            }
            else
            {
                getline(file, buff, '\n');
                stroki->lang.push_back(buff);
                read = true;
            }
 
 
        }
 
        file.close(); 
    }//Работает верно
    void Hex_to_locale(dats *stroki)
    {
        for (unsigned int i = 0; i < Read_FromFile::Tables.size(); i++)
        {
            Values buffer;
            string sbuffer;
            Tables[i] = buffer;
            sbuffer=buffer.vnum;
            for (unsigned int j = 0; j < stroki->game.size(); i++)
            {
                if (buffer.vnum==stroki->game[j])
                {
                    buffer.locale_name = StringToHex(stroki->lang[j]);
                    Tables[i] = buffer;
                    break;
                }
            }
        }
    }
    public:
 
        void start()
        {
            string namefile1, resultfile;
            dats *stroki = new dats;
            dats *strokitr = new dats;
            dats *untr = new dats;
            cout << "Введите имя файла донора,учитывая разширение(.txt)и регистр(ABC не равно abc) \n";
            cin >> namefile1;
            namefile1 = findfile(namefile1);
            ReadFileClient(strokitr, namefile1);
            Hex_to_locale(strokitr);
            //StringToHex(strokitr);
 
            cout << "Результат готов в файле result.txt\n";
        }
};
Вызываю в мэине
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
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "HexToString(Tables->name)"<< endl;/*some string|\*/
    int z;
    char pattern[] = "INSERT INTO item_proto VALUES [(]" "[']" "(\\d)" "[']" "[,]\\s+" "([\\w]+)" "[,]\\s+" "([\\w]+)" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+"  "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+""[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\-\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[,]\\s+" "[']" "(\\d)" "[']" "[)].";
    cout << "Ввести путь к файлу(1) или использовать готовый (2) ? \b\n";
    cin >> z;
    Read_FromFile *reading = new Read_FromFile();
    //Read_FromFile reading;
    HexTranslator * heex = new HexTranslator();
    //HexTranslator heex;
    switch (z)
    {
        case 1: 
            reading->SetNameFile();
            reading->DumpFile();
            reading->Regular_pars();
            heex->start();
        case 2:
            cout << reading->GetNameFile() << endl;
            reading->DumpFile();
            reading->Regular_pars();
            heex->start();
 
    default:
        break;
    }
    
 
 
    system("pause");
    return 0;
}
пример строки для первого класса


пример строки для первого класса
Кликните здесь для просмотра всего текста
INSERT INTO item_proto VALUES ('10', 0xB5B52B30, 0x536368776572742B30, '1', '0', '0', '2', '32', '1', '16', '', '0', '1', '11', '1', '15', '1', '0', '0', '0', '7', '22', '0', '0', '0', '0', '0', '15', '19', '13', '15', '0', '-1', '-1', '-1', '-1', '-1', '-1', '0', '1', '0', '0');


Вернуться к обсуждению:
Передача вектора структур из класса в другой класс C++
0
Заказать работу у эксперта
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.03.2019, 10:30
Готовые ответы и решения:

Передача вектора из класса в класс?
Доброго времени суток! У меня возникла проблема в очень простой программе. Я передаю функции из...

Передача данных из класса Game1 в другой класс
Как передать свойство из одного класса в другой: Класс Game1: public class Game1 { ...

Передача объекта однго класса в другой класс
Имеется класс Main в котором имеется класс PortReader с обработчиком события serialEvent по приему...

Передача ссылки на функцию класса Виджет в другой класс
Будет ли работать если передать ссылку на функцию от класса Виджет в класс который не виджет. ...

4
08.03.2019, 10:30
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.03.2019, 10:30
Помогаю со студенческими работами здесь

Передача объекта класса в другой класс и обращение к этому объекту. (Потоки)
Привет, есть 3 класса. 1) Основой класс (форма) 2) Класс потоковый A. 3) Класс потоковый B. ...

Передача вектора структур в функцию
Как передать значение вектора структур в функцию visual? #include &quot;stdafx.h&quot; #include &lt;conio.h&gt;...

Передача вектора по ссылке в конструктор класса
Здравствуйте, есть такая ситуация: Vector id_vec; Thread *thr = new Thread; db_worker...

Есть два класса. Как из одного класса перенести данные в другой класс?
Есть два класса : планета и диспетчер планет. Диспетчер имеет информацию о планетах: их названия,...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru