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

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

30.03.2013, 20:01. Показов 1274. Ответов 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"
Как проще всего реализовать такую задачу?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.03.2013, 20:01
Ответы с готовыми решениями:

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

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

Как используя класс FILE записать в текстовый файл в кодировке MS-DOS?
Как используя класс FILE записать в текстовый файл в кодировке MS-DOS?

5
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
30.03.2013, 20:05
Teacher269, не очень понятно в чем проблема, если честно.
Определения классов должны заканчиваться точкой с запятой:
C++
1
2
3
4
5
6
7
8
9
class _someclass{
public:
...
}; // здесь точка с запятой
class _mainclass{
public:
_someclass *sc;
int n;//размер\количество sc
} ; // и здесь точка с запятой
Размещать всё это лучше в заголовочных файлах (*.h, *.hpp)
0
0 / 0 / 0
Регистрация: 25.12.2012
Сообщений: 12
31.03.2013, 00:49  [ТС]
проблема в том, что сохранятся будет ссылка, а не сами данные.. то есть, если бы было:
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 );
}
или есть способ по-изящней?
0
0 / 0 / 0
Регистрация: 31.03.2013
Сообщений: 16
31.03.2013, 00:52
class ...
{ofstream FILE ("file",ios::app);
FILE<<и то что нада записать также и реалезация
}
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
31.03.2013, 01:02
Teacher269, я кажется понял, что Вам нужно. Почитайте про сериализацию и POD-типы.
1
5499 / 4894 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
31.03.2013, 06:18
Цитата Сообщение от Teacher269 Посмотреть сообщение
Как проще всего реализовать такую задачу?
Перегружать в классах операторы чтения\записи в файл, и в них всё прописывать.

Добавлено через 3 минуты
Цитата Сообщение от Teacher269 Посмотреть сообщение
То есть, можно сказать, одной строчкой fwrite можно записать весь класс разом - очень удобно...
Но не очень правильно...
http://habrahabr.ru/post/142662/
http://www.kalinin.ru/programm... 7_00.shtml
Использование #pragma pack(push,1)... pack(pop)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.03.2013, 06:18
Помогаю со студенческими работами здесь

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

Файл: Как записать построчно массив из базы данных в файл?
всем привет! $ch = mysqli_query($dblink, &quot;SELECT * FROM `sceneries`&quot;) or die(mysql_error()); $list = array(); while ($list =...

Файл: Есть 5 классов, как их записать в текстовый файл?
Ребята пожалуйста кто знает как разобраться с файлами. Есть 5 классов как их записать в текстовый файл??????Чтобы они потом в этом файле...

Как перебрать json файл и записать результат в файл?
Доброго времени суток! Мне нужно перебрать большой Json файл по значению &quot;sum&quot; и записать в файл( если sum больше 5 то записываем его в...

Как записать XML файл в исполнительный файл программы?
Как записать XML файл в исполнительный файл программы? Кросплатформенно!! (linux,windows и Cmake). Ах да без Qt.


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru