4 / 4 / 1
Регистрация: 17.12.2015
Сообщений: 119
1

Запись в файл объекта класса

17.04.2017, 19:41. Показов 781. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Object
{
private:
    int myN;
    std::vector<std::string> myLines;
public:
    Object();
    ~Object();
 
    void setN(int n)
    {
        myN = n;
    }
 
    void addLine(std::string str)
    {
        myLines.push_back(str);
    }
}
Есть примерно такой класс. В программе будет несколько объектов этого класса с разным количеством строк разной длины в векторе(Допустим их будет 3). Как это всё записать(сохранить) в файл(битами), чтобы это можно было считать позже?
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.04.2017, 19:41
Ответы с готовыми решениями:

Запись в файл объекта класса
Добрый вечер,предположим есть подобный класс,с полями : const SIZE = 10; class myClass { ...

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

Запись объекта класса в файл
Доброго времени суток! нужно сохранить объект вот такого класса: class Act { public: ...

Запись и чтение объекта класса в файл и из файла
У меня есть std::list состоящий из объектов типа Person это база о людях. Нужно реализовать два...

7
Эксперт С++
1623 / 953 / 782
Регистрация: 06.02.2016
Сообщений: 2,449
Записей в блоге: 30
17.04.2017, 19:52 2
C++
1
2
3
4
5
6
Object ob;
    ofstream outf("ob.txt",ios::binary);  
    outf.write(reinterpret_cast<char*>(&ob),sizeof(ob)); 
    outf.close();
       ifstream is("obb.txt",ios::binary);     
    is.read(reinterpret_cast<char*>(&ob),sizeof(ob));
0
4 / 4 / 1
Регистрация: 17.12.2015
Сообщений: 119
17.04.2017, 21:12  [ТС] 3
Цитата Сообщение от Peoples Посмотреть сообщение
reinterpret_cast<char*>(&ob)
Объясните пожалуйста, что это и зачем оно надо.

Добавлено через 1 час 16 минут
Ну в общем оно не работает. Если чтение и запись разбить на 2 программы и в чтении сделать вывод (cout), то выводит мусор
0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
17.04.2017, 21:32 4
Peoples, классы с такими полями не годятся, без сериализации, для бинарных методов записи/чтения.
0
Peoples
17.04.2017, 21:34
  #5

Не по теме:

nd2, из-за вектора?

0
nd2
3431 / 2810 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
17.04.2017, 21:41 6
Цитата Сообщение от JackLas Посмотреть сообщение
В программе будет несколько объектов этого класса с разным количеством строк разной длины в векторе(Допустим их будет 3). Как это всё записать(сохранить) в файл(битами), чтобы это можно было считать позже?
Можно так: записываем, в текстовый файл, сначала размер вектора (количество строк), потом сами строки.

Добавлено через 30 секунд

Не по теме:

Цитата Сообщение от Peoples Посмотреть сообщение
из-за вектора?
И из-за string.



Добавлено через 5 минут
Где-то здесь, на форуме, был пример сериализации таких объектов.
1
шКодер самоучка
2171 / 1878 / 912
Регистрация: 09.10.2013
Сообщений: 4,125
Записей в блоге: 7
17.04.2017, 22:16 7
Цитата Сообщение от JackLas Посмотреть сообщение
Как это всё записать(сохранить) в файл(битами), чтобы это можно было считать позже?
нужно сохранять поэлементно.
при этом для всех "сложных" объектов(string, vector и т.д.) нужно записывать их размер.
Читать так же поэлементно, в том же порядке, в котором записывали.
0
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 261
17.04.2017, 22:36 8
было время когда при упоминании о сериализации я себе представлял мануал толщиной в 2 талмуда с ее описанием, на самом-же деле достаточно прочитать 1 статью и увидеть пример, для потребительского пользования.
Сейчас не представляю как люди раньше жили без этих библиотек, при чем из самого распространенного есть boost, там действительно не все так просто с его сборкой, а есть cereal которая по сути h-файл, кинул в папку с проектом и голова болит намного меньше

Добавлено через 3 минуты
p.s. мало того в большинстве случаев сериализация быстрее своих велосипедов что немаловажно при записи/чтении больших объемов
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.04.2017, 22:36
Помогаю со студенческими работами здесь

Запись объекта класса с контейнером set в бинарный файл C++
Доброго времени суток! Пишу курсовую по теме &quot;Работа с множествами&quot;. Хочу реализовать код через...

Запись объекта класса в файл и чтение из файла (Вызвано необработанное исключение: нарушение доступа для чтения)
Доброго времени суток. Вообщем-то есть некий класс Weapons: class Weapons { public: void...

ООП. header файл. Функцию объекта вынести в файл класса
#ifndef DRAW_H #define DRAW_H #include &quot;mainwindow.h&quot; #include &quot;ui_mainwindow.h&quot; #include...

Создание объекта класса и запись его в файл при нажатии кнопки
Добрый день. Стоит задача: при нажатии на кнопку должен создаваться объект моего класса, затем...


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

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

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