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

Вектор с классом должен получить класс (?) - C++

Восстановить пароль Регистрация
 
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
11.09.2013, 22:12     Вектор с классом должен получить класс (?) #1
Добрый вечер!

1) Подскажите, как быть.

Есть у меня класс В.
есть функция "чтение из файла"


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
class B {
int a;
public:
B ();
~B ();
void 
};
 
 
void B::read_file (const vector<B>& dall)
{
    B OpenFile;
    // объявление переменной
    ifstream in_file1 ("n.txt");
 
    //если файл не открылся, то
    if (!in_file1)
    {
        cout << "Не удаётся открыть файл 1\n";
    }
    else
    {
        if (!in_file1)
        {
            cout << "Не удаётся открыть файл 2\n";
        }
        // пока не конец файла
        while (!in_file1.eof())   
        {
        B OpenFile;
        in_file1 >> OpenFile.a;
        diskk_all.push_back(OpenFile);
        }
        // закрытие потока
        in_file1.close();
    }
}
 
 
 
 
void main()
{
    setlocale(0,"");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int a,i;
    vector <B> dall; 
//вызвать функцию чтения из файла///////////////////////
 
}
И теперь мне нужно из файла засунуть неизвестное число объектов в вектор.

я сделала это так:

C++
1
2
3
B OpenFile;
    in_file1 >> OpenFile.a;
    diskk_all.push_back(OpenFile);
Но возник вопрос: а как мне вызвать функцию read?
как вектор передать?

потому что когда я вызываю функцию, то ошибка вылазит, что функция не определена, но она же есть в классе. тогда как её надо вызвать???
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
coloc
погромист
 Аватар для coloc
409 / 245 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
11.09.2013, 22:23     Вектор с классом должен получить класс (?) #2
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
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <vector>
#include <fstream>
 
using namespace std;
 
class B {
int a;
public:
B ();
~B ();
void read_file(vector<B>& dall);
};
 
B::B() {}
 
B::~B() {}
 
void B::read_file (vector<B>& diskk_all)
{
    B OpenFile;
    // îáúÿâëåГ*ГЁГҐ ïåðåìåГ*Г*îé
    ifstream in_file1 ("n.txt");
 
    //åñëè ГґГ*éë Г*ГҐ îòêðûëñÿ, ГІГ®
    if (!in_file1)
    {
        cout << "ГЌГҐ ГіГ¤Г*ВёГІГ±Гї îòêðûòü ГґГ*éë 1\n";
    }
    else
    {
        if (!in_file1)
        {
            cout << "ГЌГҐ ГіГ¤Г*ВёГІГ±Гї îòêðûòü ГґГ*éë 2\n";
        }
        // ïîêГ* Г*ГҐ ГЄГ®Г*ГҐГ¶ ГґГ*éëГ*
        while (!in_file1.eof())   
        {
        B OpenFile;
        in_file1 >> OpenFile.a;
        diskk_all.push_back(OpenFile);
        }
        // Г§Г*êðûòèå ïîòîêГ*
        in_file1.close();
    }
}
 
 
 
 
int main()
{
    setlocale(0,"");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    int a,i;
    vector <B> dall; 
    dall.push_back(B());
    dall[0].read_file(dall);
//âûçâГ*ГІГј ГґГіГ*êöèþ Г·ГІГҐГ*ГЁГї ГЁГ§ ГґГ*éëГ*///////////////////////
 
}
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
12.09.2013, 08:27  [ТС]     Вектор с классом должен получить класс (?) #3
Сoloc, спасибо вам большое!!! Счас, ТЗ доделаю товарищам, буду разбираться с вашим кодом. Спасибо!!!)))))

Добавлено через 9 часов 34 минуты
Сделала, получилось, но возникла проблема со считыванием, хотя нет там "cin >>", теперь они с get, есть "cout <<" с "\n", как тут быть?



C++
1
getline(in_file1, OpenFile.nnnn);
у меня такое считывание с файла, потому что nnnn -- это string, там должны быть пробелы.
alsav22
5282 / 4801 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
12.09.2013, 08:51     Вектор с классом должен получить класс (?) #4
Nullik, у вас зачем два раза одно и то же?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
...
ifstream in_file1 ("n.txt");
 
    //если файл не открылся, то
    if (!in_file1)
    {
        cout << "Не удаётся открыть файл 1\n";
    }
    else
    {
        if (!in_file1)
        {
            cout << "Не удаётся открыть файл 2\n";
        }
...
Nullik
 Аватар для Nullik
43 / 12 / 1
Регистрация: 13.03.2013
Сообщений: 297
Завершенные тесты: 1
12.09.2013, 10:17  [ТС]     Вектор с классом должен получить класс (?) #5
да это ошибка, это надо подправить.
Yandex
Объявления
12.09.2013, 10:17     Вектор с классом должен получить класс (?)
Ответ Создать тему
Опции темы

Текущее время: 06:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru