Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 24

Как правильно считать обьекты класса с файла в контейнер set ?

27.05.2019, 11:28. Показов 3240. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, при считывании с файла полей класса в контейнер set. Заполнение проходит неправильно и записывается что куда.
Подозреваю из-за того что табуляция мешает. Если да, то как ее пропустить или в другом проблема ? Помогите пожалуйста

вот так я записываю и считываю с файла

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
template<class T>
void WriteContainer(set<T>&Ar)
{
    ofstream fout("Writter.txt"); // опис змінної для потоку
    copy(Ar.begin(), Ar.end(), ostream_iterator<T>(fout, "\n")); // потоковий ітеративний запис в файл
}
 
template<class T>
void ReadContainer(set<T>&Ar)
{
    fstream fin("Writter.txt"); // потокова змінна
    copy(istream_iterator<T>(fin), istream_iterator<T>(), inserter(Ar,Ar.begin())); //ітеративне зчитвання з потоку 
}
Вот перегруженные операторы

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Перегрузка оператора потокововго введення 
    friend ostream& operator<<(ostream& os, const CWritter& Obj)
    {
        return os << Obj.m_strFirstName << "\t" << Obj.m_strLastName << "\t" << Obj.m_strMiddleName
            << "\t" << Obj.m_chSex << "\t" << Obj.m_iDay << "\t" << Obj.m_iMonth
            << "\t" << Obj.m_iYear << "\t" << Obj.m_strCountry << "\t" << Obj.m_strPlaceBirth
            << "\t" << Obj.m_strGenre << "\t" << Obj.m_strFamousWork ;
    }
 
    friend bool operator < (const CWritter &t1, const CWritter &t2);
 
    // Перегрузка оператора потокововго виведення
    friend istream& operator>>(istream& is, CWritter& Obj)
    {
        return is >>  Obj.m_strFirstName >> Obj.m_strLastName >>  Obj.m_strMiddleName
            >>  Obj.m_chSex >> Obj.m_iDay >>  Obj.m_iMonth
            >>  Obj.m_iYear >> Obj.m_strCountry  >> Obj.m_strPlaceBirth
            >> Obj.m_strGenre >>  Obj.m_strFamousWork;
    }
И в итоге получаю как на скрине , все перемешивается
Миниатюры
Как правильно считать обьекты класса с файла в контейнер set ?  
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2019, 11:28
Ответы с готовыми решениями:

Как правильно записывать в динамический массив типа класса обьекты? вот банальный пример
#pragma once #include &quot;iostream&quot; namespace Program { class Book { typedef unsigned int ui; private:

Как правильно передать контейнер указателей из другого класса?
Доброго дня! есть структура: struct LicenseType // struct for license information parsed from an lmstat { AnsiString...

Как считать из файла в контейнер STL (map)
Необходимо считать из файла с поместить в контейнер map, вывести на экран void DBase::DB() { ifstream fin(&quot;Park.txt&quot;); ...

22
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 24
27.05.2019, 13:05  [ТС]
Студворк — интернет-сервис помощи студентам
И размер равный 1, хотя там 3 обьекта должно быть
Миниатюры
Как правильно считать обьекты класса с файла в контейнер set ?  
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
27.05.2019, 13:22
Цитата Сообщение от VladislavShahno Посмотреть сообщение
И размер равный 1, хотя там 3 обьекта должно быть
Попробуй сделать без inserter
C++
1
2
3
4
5
6
7
8
9
10
template<class T>
void ReadContainer(set<T>&Ar)
{
    fstream fin("Writter.txt"); // потокова змінна
for (istream_iterator<T> it(fin); it != istream_iterator<T>(); ++it)
{
const T &val = *it;
Ar.insert(val);
}
}
Или как-то так, Посмотри, что начитывается
1
0 / 0 / 0
Регистрация: 29.11.2018
Сообщений: 24
27.05.2019, 13:30  [ТС]
Тоже самое, не то записывается
Миниатюры
Как правильно считать обьекты класса с файла в контейнер set ?  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2019, 13:30

Как правильно добавить в Set объекты своего класса?
Всем привет. Собственно меня интересует вопрос как правильно добавить в Set объекты своего класса. Как я понял нужно переопределить метод...

Как правильно считать с файла?
char inputBuffer =null; isr.read(inputBuffer); тут конечно же выдает NULLPointer exception. Мне заранее неизвестно сколько чаров в...

Как правильно считать пробел с файла?
Здравстуйте. Сделал я программную реализация Нормальных алгоритмов Маркова. В теории НАМ пустой символ обозначают лямбдой, я же в своей...

Как правильно считать число из файла?
Как мне из файла считать правильно подобные числа 01 06 ... Выходит просто 1 6 ... Более того мне нужно как-то разделить эти цифры в...

Как правильно считать (записать) структуру из файла?
не хочет правильно читать, вроде пишет, вроде правильно, не уверен. Заранее благодарен за помощь void __fastcall...


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

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru