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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Teacher269
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 12
#1

Как записать в файл класс? - C++

30.03.2013, 20:01. Просмотров 316. Ответов 5
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
class _someclass{
public:
...
}
class _mainclass{
piblic:
_someclass *sc;
int n;//размер\количество sc
}
...
_mainclass mc;
Нужно записать "mc" в файл... причем класс _someclass может также содержать указатели на другие объекты и строки типа "char* name"
Как проще всего реализовать такую задачу?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2013, 20:01     Как записать в файл класс?
Посмотрите здесь:

Как записать класс в файл? - C++
Вот допустим есть класс class LOL { private: bool h; int s; public: LOL(int s,bool h) {

Как класс string записать в бинарный файл через вектор? - C++
вопрос такой у меня есть класс. я создаю вектор по этому классу vector<Employee> work; вектор отлично заполняется и вся программа...

Класс "Комплексное число". Как считать и записать данные в файл? - C++
Надо переделать код программы, чтобы данные шли из входного файла и записывались в выходной Во входном файле 2 комплексных числа a и...

Sos! Записать класс Stack в файл, "крашит" - C++
Ребятки!! Помогайте! Не могу разобраться с записью\чтением в файл(методы Read и Write)...По коду вроде всё прозрачно,но намудрил с...

создать файл 1.part и записать в него первые x элементов массива. После чего, создать второй файл 2.part, куда записать оставшиеся в массиве элементы. - C++
Не могу понять почему не работает вот этот кусок текста. ofstream q ("1.part"); for (int i=0; i<10; ++i) { q << mas ; ...

Как записать картинку в файл - C++
Доброго времени суток. У меня есть много вопросов, на которые перед реализацией своего проекта я хотел бы получить ответы...))) Допустим...

Как записать в файл FileWrite(...) ? - C++
cherez FileWrite(...), peremennuyu tipa long, che ne proboval abrakadabra vylazit...pomogite

Как записать в файл данные? - C++
Вот готовый код: #include <iostream> #include <stdlib.h> #include <locale> #include <conio.h> using namespace std; int...

Как записать файл в массив? - C++
Добрый день, как записать побитово файл в массив типа int? Возможно ли картинку записать в массив? Нужно не буквы из txt файла, а сами...

Как записать структуру в файл? - C++
есть структура struct frend { char name; char tel; };как записать ее в файл и потом считат соответственно)) заранее...

Как записать битсет в файл? - C++
Как записать битсет в файл ?

Как записать string в файл? - C++
Добрый день, есть код программы, необходимо записать строку в текстовый файл. У меня получаются кракозябры. void table(string n1,string...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
30.03.2013, 20:05     Как записать в файл класс? #2
Teacher269, не очень понятно в чем проблема, если честно.
Определения классов должны заканчиваться точкой с запятой:
C++
1
2
3
4
5
6
7
8
9
class _someclass{
public:
...
}; // здесь точка с запятой
class _mainclass{
public:
_someclass *sc;
int n;//размер\количество sc
} ; // и здесь точка с запятой
Размещать всё это лучше в заголовочных файлах (*.h, *.hpp)
Teacher269
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 12
31.03.2013, 00:49  [ТС]     Как записать в файл класс? #3
проблема в том, что сохранятся будет ссылка, а не сами данные.. то есть, если бы было:
C++
1
2
3
4
5
6
7
class _mainclass{
public:
_someclass sc[10];
...
<прочие данные класса>
...
};
тогда можно просто так:
C++
1
2
3
4
5
_mainclass mc;
FILE * pFile;
pFile = fopen ( "myfile.bin" , "wb" );
fwrite (&mc , 1 , sizeof(_mainclass) , pFile );
fclose (pFile);
То есть, можно сказать, одной строчкой fwrite можно записать весь класс разом - очень удобно... но если есть указатели, то запишутся не данные, а ссылка на адрес памяти. То есть получается надо тупо в цикле прогонять типа такого:
C++
1
2
3
for (int i=0;i<ms.n;i++){
fwrite (&ms.sc[i] , 1 , sizeof(_someclass) , pFile );
}
или есть способ по-изящней?
Anonunfeeling
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 16
31.03.2013, 00:52     Как записать в файл класс? #4
class ...
{ofstream FILE ("file",ios::app);
FILE<<и то что нада записать также и реалезация
}
Tulosba
:)
Эксперт С++
4392 / 3235 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.03.2013, 01:02     Как записать в файл класс? #5
Teacher269, я кажется понял, что Вам нужно. Почитайте про сериализацию и POD-типы.
alsav22
5416 / 4812 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2013, 06:18     Как записать в файл класс? #6
Цитата Сообщение от Teacher269 Посмотреть сообщение
Как проще всего реализовать такую задачу?
Перегружать в классах операторы чтения\записи в файл, и в них всё прописывать.

Добавлено через 3 минуты
Цитата Сообщение от Teacher269 Посмотреть сообщение
То есть, можно сказать, одной строчкой fwrite можно записать весь класс разом - очень удобно...
Но не очень правильно...
http://habrahabr.ru/post/142662/
http://www.kalinin.ru/programming/cpp/31_07_00.shtml
Использование #pragma pack(push,1)... pack(pop)
Yandex
Объявления
31.03.2013, 06:18     Как записать в файл класс?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru