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

Лабораторная по структурам и указателям - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ (Двоич. число, тип) => знач. http://www.cyberforum.ru/cpp-beginners/thread118284.html
Доброго времени суток. Помогите пожалуйста вот с такой задачкой: "По заданным двоичному представлению числа и типу данных (минимум - int, float) вывести значение переменной данного типа" Вот мои наметки. Трудность составила функция, никак не могу правильно написать ее =( #include "stdafx.h" #include <iostream> using namespace std; const int n=32; void print(const unsigned char* data, size_t...
C++ Заменить все последовательности символов 'on' на 'online' Дана символьная строка. Заменить все последовательности символов 'on' на 'online' и вывести новую строку (если искомой последовательности в строке нет, то вывести соответствующее сообщение). Добавлено через 3 минуты #include <iostream> #include <iomanip> #include <cmath> #include <cstring> using namespace std; void Method(char *mas){ http://www.cyberforum.ru/cpp-beginners/thread118267.html
C++ не открывается mdi-окно
устал уже биться: mdi-приложение запускается, но не запускается дочернее mdi-окно: меню File=>New. Похоже он создается, но его не видно почему-то. Вот код и код ресурса: #include <windows.h> #include "mditest.h" HWND hWndClient = NULL; HINSTANCE hInst; // current instance
Чтение данных из файла содержащего комментарии. С++ C++
Здравствуйте! Есть файл содержащий слова. Так же в этом файле есть комментарии идущие после "--" пример: word1 word2 word3 -- comment --comment -------------------- word4 word5--comment
C++ ряд тейлора, поправьте прогу http://www.cyberforum.ru/cpp-beginners/thread118227.html
Имеется код , нужно чтобы прога подставляла значения тангенса по етой системе {y=tg(x/2)/tg(2*x) , -2<=x<0 {y=tg(x)+tg(x^2) , 0<=x<=2 , результат выводит но ошибка между компютерным результатом и реззультатом формульны Тейлора. #include <math.h> #include <stdio.h> #include <iostream> #include <conio.h>
C++ сортировка двумерного массива помоги отсортировать двумерный массив как в примере пример: 2 4 6 1 2 3 1 5 9 4 5 6 7 8 3 отсортировался в 7 8 9 вот мои наработки #include "stdafx.h" #include<stdio.h> void main() { подробнее

Показать сообщение отдельно
I_like_C++
14 / 14 / 1
Регистрация: 15.03.2010
Сообщений: 126
18.04.2010, 10:06     Лабораторная по структурам и указателям
лабораторная работа №11
Постановка задачи;
1. Написать функцию для формирования вектора из элементов структурного типа. Структурный тип определен в варианте. Данные получить из заранее подготовленного файла In.txt, содержащего не менее 15 записей в соответствующем формате.
2. Написать функцию для вывода вектора на экран и вывести вектор, полученный в результате вы-полнения задания 1 на экран. Функция вывода должна сообщать количество элементов в векторе и нумеровать записи, начиная с 1.
3. Написать функцию поиска элементов вектора, удовлетворяющих заданным условиям. Элементы первого вектора, удовлетворяющие условию отбора, записать в новый вектор и вывести его на эк-ран.
4. Написать функцию для вывода вектора в файл и вывести в файл Search.txt результаты поиска. В качестве параметров функция должна принимать вектор и имя файла. Имя файла должно представ-лять собой массив символов (char[])
5. Написать функцию для обработки вектора в соответствии с заданием своего варианта. Преобра-зовать первый вектор и результаты вывести в файл Out.txt. Преобразовать второй вектор и вывес-ти результаты на экран.
Вариант №10
struct pupil
{
string name;
int age;
float rating
};
параметр для поиска:Ученики, у которых фамилия или имя начинается с указанных буквосочетаний
Задание для обработки вектора структур: Удалить самого старшего ученика
программа создает по адресу c:\\in.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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <algorithm>
#include <ctime>
using namespace std;
struct pupil
{
    string name;
    int age; 
    float rating;
};
void file(char file1[])//создание файла с именами, фамилиями и случайными возрастом и рейтингом
{
    string len;
    ofstream f1;                            
    f1.open(file1);                 
    if (f1.is_open()) 
    {
        for(int i=0; i<15; i++)
        {
            switch(i)
            {
            case 0: len="Pavel Petrov";break;
            case 1: len="Ivan Eremin";break;
            case 2: len="Egor Ivanov";break;
            case 3: len="Afanasiy Malikov";break;
            case 4: len="Valeriy Mitin";break;
            case 5: len="William Baldwin";break;
            case 6: len="Robert Cecil";break;
            case 7: len="Ralph Dennis";break;
            case 8: len="Richard Godfrey";break;
            case 9: len="John Johnes";break;
            case 10: len="James Bond";break;
            case 11: len="Peter Henry";break;
            case 12:len="Nikole Owen";break;
            case 13: len="Amanda Reynolds";break;
            case 14: len="Megan Fox";
            }
            if (i==14)
            {
                f1<<len<<endl;
                f1<<rand()%10+15<<endl;
                f1<<rand()%100;
            }
            else 
            {
                f1<<len<<endl;
                f1<<rand()%10+15<<endl;
                f1<<rand()%100<<endl;
            }
        }
    }
    f1.close();
}
vector<pupil> Read(char file1[])//функция для формирования вектора из элементов структурного типа
{
    vector<pupil> V1;
    ifstream f2(file1);
    if (f2.is_open())
    {
        while (!f2.eof())
            {
                pupil temp;
                string str, str1;
                f2>> str;
                str+=" ";
                f2>>str1;
                str+=str1;
                temp.name=str;
                f2 >> temp.age;
                f2 >> temp.rating;
                V1.push_back(temp);
            }
    }
   f2.close();
   return V1;
}
void Display(const vector<pupil> &V)//вывод вектора струкутрного типа на экран
{
    cout << "\n=================================================\n";
    int n=V.size();
    for (int i=0; i< n; i++)
        cout<<i+1<<".name: "<<V[i].name<<"\n  age: "<< V[i].age<<"\n  rating: "<<V[i].rating<<endl;  
    cout << "Общее количество: " << n << endl;
}
vector<pupil> poisk(const vector<pupil> &V, string str)//функция поиска элементов вектора 
{
    vector<pupil> V1;
    int n=V.size();
    for(int i=0;i<n;i++)
    {
        string s=V[i].name;
        string::size_type found=s.find(str,0);
        if( found != string::npos) 
        {
            pupil temp;
            temp.name=V[i].name;
            temp.age=V[i].age;
            temp.rating=V[i].rating;
            V1.push_back(temp);
        } 
        
    }
   return V1;
}
 
void in_file(char file2[], vector<pupil> &V1)//элементы, которые были найдены, записываются в файл Search
{
    ofstream f1(file2);
    if (f1)
    {
        int n=V1.size();
        for(int i=0; i<n; i++)
        {
            f1<<V1[i].name;
            f1<<endl;
            f1<<V1[i].age;
            f1<<endl;
            f1<<V1[i].rating;
            f1<<endl;
        }
    }
    f1.close();
}
void obrabotka1(vector<pupil> &V,char file3[])//функция для обработки вектора 1
{
    ofstream f3(file3);
    if (f3)
    {
        int n=V.size();
        int t;
        vector<int> Age;
        for(int i=0;i<n;i++)
        {
            t=V[i].age;
            Age.push_back(t);
        }
        sort( Age.begin(), Age.end() );//сортировка вектора
        int m=Age.size();
        t=Age[m-1];
        for(int i=0; i<n;i++)
        {
            if (t==V[i].age)
            {
                f3<<V[i].name;
                f3<<endl;
                f3<<V[i].age;
                f3<<endl;
                f3<<V[i].rating;
                f3<<endl;
                V.erase(V.begin()+i, V.begin()+i+1);//удаление старшего ученика
                n--;
                i--;
            }
        }
    }
    f3.close();
}
void obrabotka2(vector<pupil> &V1)//функция для обработки вектора 1
{
        int n=V1.size();
        int t;
        vector<int> Age;
        for(int i=0;i<n;i++)
        {
            t=V1[i].age;
            Age.push_back(t);
        }
        sort( Age.begin(), Age.end() );//сортировка вектора
        int m=Age.size();
        t=Age[m-1];
        for(int i=0; i<n;i++)
        {
            if (t==V1[i].age)
            {
                V1.erase(V1.begin()+i, V1.begin()+i+1);//удаление старшего ученика
                n--;
                i--;
            }
        }
}
int main()
{
    setlocale(0, "russian");
    srand((unsigned)time(0));
    string str;
    char file1[] = "c:/in.txt", file2[] = "c:/Search.txt", file3[] = "c:/Out.txt";
    file(file1);//создание файла с именами, фамилиями и случайными возрастом и рейтингом
    vector <pupil> V=Read(file1);//функция для формирования вектора из элементов структурного типа
    Display(V);//вывод вектора струкутрного типа на экран
    cout<<"\nПараметр для поиска:\nУченики, у которых фамилия или имя начинается с указанных буквосочетаний";
    cout<<"\nУкажите буквосочитания: ";
    cin>>str;
    vector<pupil> V1=poisk(V, str);//функция поиска элементов вектора 
    int n=V1.size();
    if (n>0)
        Display(V1);//вывод вектора струкутрного типа на экран
    else 
        cout<<"\nИскомое буквосочитание не найдено\n";
    in_file(file2,V1);// функция для вывода вектора в файл 
    
    //Удалить самого старшего ученика
    obrabotka1(V,file3);//функция для обработки вектора 1
    n=V1.size();
    if (n==0)
        cout<<"\nВектор пуст. Из него нечего удалять\n";
    else 
    {
        obrabotka2(V1);//функция для обработки вектора 2
        n=V1.size();
        if(n==0)
            cout<<"\nПреобразованный вектор пуст\n";
        else 
            Display(V1);
    }
    cout<<endl;
 
system("pause");
return 0;
}
тут и комменты прилагаются=)

лабораторная работа №16
работа с бинарными файлами
Нужно:
1. Написать функцию для заполнения вектора структурированными данными.
2. Написать функцию для создания двоичного файла со структурированными данными (параметры функции – вектор структур и имя файла).
3. Написать функцию для вывода содержимого двоичного файла на экран (параметр функции – имя файла)
4. Написать функцию для удаления из файла данных в соответствии с вариантом. Предусмотреть возможность записи удаляемых элементов в другой файл – текстовый. Для этого использовать функцию с параметрами по умолчанию: если указано имя файла, куда следует заносить удаляемую информацию, то удаляемые данные заносятся в указанный файл, в противном случае удалять бесследно. Значением функции является число удалённых элементов, параметрами – имена файлов.
5. Вывести измененный двоичный файл на экран.
6. Добавить в файл данные в соответствии с вариантом (написать соответствующую функцию).
7. Вывести измененный файл на экран.
8. Написать функцию, выполняющую замену указанной записи (в зависимости от варианта параметром является номер записи или признак записи, подлежащей замене)
9. Вывести измененный файл на экран.
вариант №8
Структура "Покупатель":
- фамилия, имя, отчество;
- номер кредитной карточки
- состояние счёта (в рублях)
Уаление:
Удалить записи, в которых на счету менее 500 рублей.
Добавление:
Добавить 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
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
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
#include <iostream>
#include <fstream>
#include <vector>
#include <string>
#include <ctime>
using namespace std;
struct pokupatel
{
    string family;
    string name;
    string fathership;
    unsigned int nomer;
    double schet;
};
void createfile(char file1[])//создание файла с именами, фамилиями и случайными номерами кридитных карточек и счетами
{
    string len;
    ofstream f1;                            
    f1.open(file1);                 
    if (f1.is_open()) 
    {
        for(int i=0; i<15; i++)
        {
            switch(i)
            {
            case 0: len="Petrov Pavel Pavlovich";break;
            case 1: len="Eremin Ivan Ivanovich";break;
            case 2: len="Ivanov Egor Vasilich";break;
            case 3: len="Malikov Afanasiy Alanovich";break;
            case 4: len="Mitin Valeriy Timurovich";break;
            case 5: len="Baldwin William Egorovich";break;
            case 6: len="Cecil Robert Eduardovich";break;
            case 7: len="Dennis Ralph Antonovich";break;
            case 8: len="Godfrey Richard Petrovich";break;
            case 9: len="Johnes John Mihaylovich";break;
            case 10: len="Bond James Sergeevich";break;
            case 11: len="Henry Peter Dmitrievich";break;
            case 12:len="Owen Nikole Rinatovich";break;
            case 13: len="Reynolds Amanda Petrovna";break;
            case 14: len="Fox Megan Zaharovna";
            }
            f1<<len<<endl;
            f1<<rand()%100000+99999<<endl;
            if (i==14)
                f1<<rand()%1000;
            else 
                f1<<rand()%1000<<endl;
        }
    }
    f1.close();
}
vector<pokupatel> createvec1(char file1[])//функция для формирования вектора из элементов структурного типа из файла
{
    vector<pokupatel> V1;
    ifstream f2(file1);
    if(!f2.fail())
    {
        while (!f2.eof())
            {
                pokupatel temp;             
                f2 >> temp.family;
                f2 >> temp.name;
                f2 >> temp.fathership;
                f2 >> temp.nomer;
                f2 >> temp.schet;
                V1.push_back(temp);
            }
    }
    else 
        cout << "Файла из которого производится чтение не существует!";
    f2.close();
    return V1;
}
vector<pokupatel> read(int n)//создание структурированного вектора с клавиатуры
{
    vector<pokupatel> f1;
    for(int i=0;i<n;i++)
    {
        pokupatel temp;
        cout<<"Введите фамилию покупателя: ";
        cin>>temp.family;
        cout<<"Введите имя покупателя: ";
        cin>>temp.name;
        cout<<"Введите отчество покупателя: ";
        cin>>temp.fathership;
        cout<<"Введите номер кридитки: ";
        cin>>temp.nomer;
        cout<<"Введите счет покупателя: ";
        cin>>temp.schet;
        f1.push_back(temp);
    }
    return f1; 
}
void infile(char file2[], const vector<pokupatel> &v1)//создание бинарного файла из вектора
{
    ofstream f3(file2, std::ios::binary);//открываем файл для записи
    int n=v1.size();
    if(f3.is_open())
    { 
        for(int i = 0; i < n; i++) // выводим массив в файл поэлементно
        {
            f3.write((char *)&v1[i].family, sizeof(string));
            f3.write((char *)&v1[i].name, sizeof(string));
            f3.write((char *)&v1[i].fathership, sizeof(string) );
            f3.write((char *)&v1[i].nomer, sizeof(unsigned int) );
            f3.write((char *)&v1[i].schet, sizeof(double) );
        }
        f3.close();
    } 
}
void outbin (char file2[])// открываем бинарный файл для чтения и выводим его 
{
    cout<<"===================================================\n";
    ifstream f3(file2,std::ios::binary);
    if (f3)
    {
        pokupatel temp;
        int i=1;
        while (!f3.eof())
        {           
            f3.read((char*)& (temp.family),sizeof(temp.family));
            f3.read((char*)& (temp.name),sizeof(temp.name));
            f3.read((char*)& (temp.fathership),sizeof(temp.fathership));
            f3.read((char*)& (temp.nomer),sizeof(temp.nomer));
            f3.read((char*)& (temp.schet),sizeof(temp.schet));  if (f3.eof()) break;
            cout<<i<<". ФИО: "<<temp.family<<" "<< temp.name<<" "<<temp.fathership<<"\n  Номер: "<<temp.nomer<<"\n  Счет: "<<temp.schet<<" rub"<<endl;              
            i++;
        }
            cout << "Общее количество: " << i-1 << endl;
    }
    f3.close(); 
}
vector <pokupatel> vecofbin (char file2[])//создаем вектор из бинарного файла
{
    vector<pokupatel> x1;
    ifstream f4(file2,std::ios::binary);
    if (f4)
    {
        pokupatel temp;
        while (!f4.eof())
        {           
            f4.read((char*)& (temp.family),sizeof(temp.family));
            f4.read((char*)& (temp.name),sizeof(temp.name));
            f4.read((char*)& (temp.fathership),sizeof(temp.fathership));
            f4.read((char*)& (temp.nomer),sizeof(temp.nomer));
            f4.read((char*)& (temp.schet),sizeof(temp.schet));
            if (f4.eof()) 
                break;
            x1.push_back(temp);
            }
    }
    f4.close(); 
    return x1;
}
 
int delofbin(char file2[])//функция, которая удаляет элементы бинарного файла, у которых на счете меньше 500р 
{
    vector<pokupatel> x1 = vecofbin(file2);//создаем структурированный вектор из бинарного файла
    int n=x1.size(), h=0;
    for(int i=0; i<n;i++)
    {
        if (x1[i].schet<500)
        {
            x1.erase(x1.begin()+i,x1.begin()+i+1);
            n--;
            i--;
            h++;
        }
    }
    infile(file2,x1);//создание бинарного файла из вектора
    return h;
}
int delofbin(char file2[],char file3[])//функция, которая удаляет элементы бинарного файла, у которых на счете меньше 500р  и записывает их в текстовый файл 
{
    vector<pokupatel> x1 = vecofbin(file2);//создаем структурированный вектор из бинарного файла
    int h=0;
    ofstream g1(file3);
    if (g1)
    {
        int n=x1.size();
        for(int i=0; i<n;i++)
        {
            if (x1[i].schet<500)
            {
                g1<<x1[i].family<<" "<<x1[i].name<<" "<<x1[i].fathership<<endl;
                g1<<x1[i].nomer<<endl;
                g1<<x1[i].schet<<endl;
                x1.erase(x1.begin()+i,x1.begin()+i+1);
                n--;
                i--;
                h++;
            }
        }
    }
    g1.close();
    infile(file2,x1);//создание бинарного файла из вектора
    return h;
}
void dobinbin(int q, char file2[]) //добавление покупателей в бинарный файл
{
    vector<pokupatel> r1 = vecofbin(file2);//создаем структурированный вектор из бинарного файла
    pokupatel temp;
    for(int i=0;i<q; i++)
    {
        cout<<"Введите фамилию покупателя: ";
        cin>>temp.family;
        cout<<"Введите имя покупателя: ";
        cin>>temp.name;
        cout<<"Введите отчество покупателя: ";
        cin>>temp.fathership;
        cout<<"Введите номер кредитки покупателя: ";
        cin>>temp.nomer;
        cout<<"Введите счет покупателя: ";
        cin>>temp.schet;
        r1.push_back(temp);
    }
    infile(file2,r1);//создание бинарного файла из вектора
}
int zamena(unsigned int z, char file2[])//замена элементов на последнюю запись
{
    vector<pokupatel> v1 = vecofbin(file2);//создаем структурированный вектор из бинарного файла
    pokupatel lastzap;
    int n=v1.size();
    lastzap=v1[n-1];//переменной "ластзап" присваиваем значение последней записи в векторе
    int h=0; 
    for(int i=0; i<n-1;i++)
    {
        if (v1[i].nomer < z)//если меньше зед, то заменить на последнюю запись
        {
            v1[i]=lastzap;
            h++;
        }
    }
    infile(file2,v1);//создание бинарного файла из вектора
    return h;
}
int main()
{
    setlocale (0,"Russian");
    srand((unsigned)time(0));
    cout<<"Лабораторная работа №16 Вариант №8\n";
    cout<<"===========================================================\n";
    char file1[] = "c:/file.txt", file2[] = "c:/binfile.bin", file3[] = "c:/del.txt";
    vector<pokupatel> v1;
    int q;
    cout<<"Методы заполнения вектора структурированными данными:\n1-из файла\n2-с клавиатуры\nВвод: ";
    cin>>q;
    
    switch(q)
    {
    case 1:
        {
            createfile(file1);//создание файла с фио покупателей, случайными номерами кридитных карточек и счетами
            v1=createvec1(file1);//функция для формирования вектора из элементов структурного типа из файла
        }break;
    case 2:
        {
            int n;
            cout<<"Задайте количество покупаетелей: ";
            cin>>n;
            v1=read(n);//создание структурированного вектора с клавиатуры
        }
        break;
    default: cout<<"Выбран неверный метод\n";
        system("pause");
        return 0;
    }
    infile(file2,v1);//создание бинарного файла из вектора
    cout<<"Исходный бинарный файл:\n";
    outbin(file2);// открываем бинарный файл для чтения и выводим его   
    cout<<"===========================================================\n";
    cout<<"Задание удаления:\nУдалить записи, в которых на счету менее 500 рублей\n";
    cout<<"1-удалить бесследно\n2-записать в текстовый файл\n0-выход\nВвод: ";
    cin>>q;
    int y=0;
    switch(q)
    {
    case 0: break;
    case 1: y=delofbin(file2);break;
    case 2: y=delofbin(file2, file3);break;
    default: break;
    }
    cout<<"Бинарный файл после удаления:\n";
    outbin(file2);// открываем бинарный файл для чтения и выводим его 
    cout<<"Количество удаленных покупателей: "<<y<<endl;
    cout<<"=========================================================\n";
    cout<<"Задание добавления:\nДобавить N элементов в конец файла\n";
    cout<<"Введите количество покупателей, которых следует добавить: ";
    cin>>q;
    dobinbin(q,file2);//добавление покупателей в бинарный файл
    cout<<"Бинарный файл после добавления:\n";
    outbin(file2);// открываем бинарный файл для чтения и выводим его
    cout<<"=========================================================\n";
    cout<<"Заменить все записи с номером кридитной карточки меньше указанного на последнюю запись\n";
    cout<<"Введите номер: ";
    unsigned int z;
    cin>>z;
    q=zamena(z, file2);//замена элементов на последнюю запись
    cout<<"Бинарный файл после замены:\n";
    outbin(file2);// открываем бинарный файл для чтения и выводим его
    cout<<"Количество замененых покупаетелей: "<<q<<endl;
system("pause");
return 0;
}
Добавлено через 12 минут
Цитата Сообщение от nesstar Посмотреть сообщение
у меня возникла трудность с етим "вектором" в мейне(как именно его использовать ?).
вот в функции формирующая вектор
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
vector<pupil> Read(char file1[])
{
        vector<pupil> V1;
        ifstream f2(file1);
        if (f2.is_open())
        {
                while (!f2.eof())
                        {
                                pupil temp;
                                string str, str1;
                                f2>> str;
                                str+=" ";
                                f2>>str1;
                                str+=str1;//склеиваю имя и фамилию в одно целое
                                temp.name=str;//и это целое присваиваю переменной temp.name
                                f2 >> temp.age;
                                f2 >> temp.rating;
                                V1.push_back(temp);
                        }
        }
   f2.close();
   return V1;
}
return V1;- возвращаем этот вектор, т.е в мейне нужно писать следующее:
C++
1
2
vector <pupil> V=Read(file1);//объявляем любой вектор структурированного типа и присваиваем ему значение функции, т.е значение V1 из функции
//получилось как бы так "v=v1"
если какие вопросы по векторам или вообще по чему нибудь еще вот сайт добротный его я юзаю
http://www.cppreference.com/wiki/ru/stl/vector/start
 
Текущее время: 03:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru