Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 19.04.2019
Сообщений: 5

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

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

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

Имею файл Input.txt
Кликните здесь для просмотра всего текста
Code
1
2
3
4
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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2019, 12:39
Ответы с готовыми решениями:

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

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

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

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2019, 12:39
Помогаю со студенческими работами здесь

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. На мобильном - сканируйте QR-код. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru