0 / 0 / 0
Регистрация: 19.04.2019
Сообщений: 5
1

Как разделить строку из файла на динамические массивы, связанные с классом?

23.04.2019, 12:39. Показов 409. Ответов 0

Author24 — интернет-сервис помощи студентам
День добрый!

Имею файл Input.txt
Кликните здесь для просмотра всего текста
Код
2013
М ВундерШопе 1 2010 63
Ж Мегаполис 9 2000 120
Ж Мегаполис 9 2001 120

У меня есть классы Build, Shop, Flat, причем два класса (Shop, Flat) являются потомками класса Build.
Файл: class.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
#ifndef class_h
#define class_h
#include <string>
class Build {
private:
    char* Firm;
    int NumberF;
    int YearB;
public:
    //Build(char* firm, int number_f, int yearb); //конструктор с параметрами, позволяющий заполнять поле данного класса
    int print(); //метод возвращает сведения о здании в виде одной текстовой строки с тремя
полями (Компания, Этажность, Год), разделенными пробелом.
    void changeF(); //метод изменяет поле Firm, в качестве параметра методу передается новое
наименование компании застройщика.
    void changeN(); //метод изменяет поле NumberF, в качестве параметра методу передается
новое количество этажей.
    void changeY(); //метод изменяет поле YearB, в качестве параметра методу передается новый
год постройки.
};
 
class Shop : public virtual Build {
private:
    int Square;
public:
    Shop (char* firm, int number_f, int yearb, int square); //конструктор с параметрами, позволяющий заполнять поле данного класса
    int print(); //метод возвращает сведения о магазине в виде одной текстовой строки с
четырьмя полями (Компания, Этажность, Возраст, Площадь), разделенными пробелом. В
качестве параметра методу передается текущий год. Если текущий год меньше года выпуска, то
вместо возраста выводится фраза «еще не построен».
    int changeS(); //метод изменяет поле Square, в качестве параметра методу передается новое
значение торговых площадей.
};
 
class Flat : public virtual Build {
private:
    int Kvar;
public:
    Flat(char* firm, int number_f, int yearb, int kvar); //конструктор с параметрами, позволяющий заполнять поле данного класса
    int print(); //метод возвращает сведения о жилом доме в виде одной текстовой строки с
четырьмя полями (Компания, Этажность, Возраст, Количество_квартир), разделенными
пробелом. В качестве параметра методу передается текущий год. Если текущий год меньше года
выпуска, то вместо возраста выводится фраза «еще не построен».
    int changeK(); //метод изменяет поле Kvar, в качестве параметра методу передается новое
количество квартир.
};
#endif


Это пока тот код, который я впоследствии хочу включить в методы.
Файл: main.cpp
Кликните здесь для просмотра всего текста
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
#define _CRT_SECURE_NO_WARNINGS
#include "class.h"
#include <locale.h>
#include <iostream>
#include <fstream>
#include <vector>
#include <ostream>
 
using namespace std;
 
int main() {
 
    setlocale(LC_ALL, "Russian");
 
    char c;
    int i = -1;
    int year;
    string str;
    string s;
    //string s1;
    int length;
    vector <string> Build; 
    vector <Shop> Shop; 
    vector <Flat> Flat;
 
    cout << "ТИП_ЗДАНИЯ КОМПАНИЯ ЭТАЖНОСТЬ ГОД ПЛОЩАДЬ" << endl;
 
    ifstream base("Input.txt");
 
    base >> year;
 
    while (getline(base, s)) { // пока не достигнут конец файла класть очередную строку в переменную (s)
        //cout << s << endl; 
        //i++;
        //length = s.length();
        while (base >> s) {
            Build.push_back(s);
            cout << "Строки: " << s << endl; //(всего должно выводиться пять полей, которые указаны в Input.txt) (выводится по одному слову из строки) (однако вопрос... как это занести в массив?)
            //for (int j = 0; j < 5; j++)
                //Build[i] = s; 
        }
        cout << endl;
        
    } 
 
    cout << i << endl;
 
    base.close();
    system("pause");
 
}

Проблема в том, что я не знаю, как сделать так, чтобы в динамические массивы Build, Shop и Flat занести слова (из файла) из разделенной строки и связать их с классом. Переискал по этому поводу Интернет, но все безуспешно. Помогите, пожалуйста.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.04.2019, 12:39
Ответы с готовыми решениями:

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

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

Считывание данных из файла и запись в динамические массивы
Помогите реализовать следующую задачу: Есть файл содержания 40.1 50.1 60.1 70.1 11:15:23...

Динамические массивы и чтение/запись текстового файла
Здравствуйте. Имеется входной текстовый файл InputFile.txt. В нем задаётся система: матрица A...

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

Процедуры и функции, связанные с классом, называются
Процедуры и функции, связанные с классом, называются Выберите один ответ: подпрограммами...

Как разделить строку запуска на путь файла и параметры запуска?
Казалось бы очень странный вопрос, но тем не менее. Даже не знаю как правильно сформулировать, что...

Задачи связанные с коллекциями, окном Immediate, классом и пользовательским типом
Доброго вечера. Помогите с решением нескольких задачек, пожалуйста. 1. Дана коллекция,...

Списки. Связанные динамические структуры
Парни помогите с программой пожалуйста:) Тема: &quot;Списки&quot; «Обработка текстового файла». Имеется...

Связанные (динамические) выпадающие списки
Коллеги, помогите решить задачку со связанными списками. Создаю шаблон заявки для организации...

Динамические связанные ComboBox и Кнопка
Попробую ещё раз попытать счастье на этом форуме и найти ответ. Наверняка, для опытных это ни...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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