1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||
1 | |||||||||||
Вывод в файл и последующее чтение из файла объектов класса04.05.2012, 01:43. Показов 2565. Ответов 5
Метки нет Все метки)
(
Как наиболее правильно и канонично выводить (так чтобы потом ещё и прочитать) объекты классов в файл?
Представим ситуацию: Есть класс A, от него унаследован класс B и класс C. Есть функция, которая принимает список объектов А, В и С (вперемешку). Есть функция, задача которой считать из файла объекты А, В и С (и не перепутать что где) и вернуть список этих объектов. Как это лучше всего реализовать? Классы A, B и C пускай будут простенькие. Хоть бы вот такие:
Добавлено через 31 минуту Тоесть вся сложность в том что мы заранее не знаем что записано в файл, посему не знаем сколько байт читать и когда у нас один объект закончился, а начался другой ... Дописал ещё прототипы функций, а также main если кто захочет поэкспериментировать чтобы помочь:
Допустимо дописывать что угодно и делать как угодно, лишь бы выполнить задачу ...
0
|
|
04.05.2012, 01:43 | |
Ответы с готовыми решениями:
5
Добавить вывод в файл и чтение из файла объектов класса Запись и чтение объектов класса в файл С ++ Запись в файл и последующее чтение массива типа char Добавление вывода в файл и чтения из файла объектов класса |
21 / 21 / 7
Регистрация: 06.10.2008
Сообщений: 173
|
|
04.05.2012, 09:52 | 2 |
почитай об сериализации и xml, очень хороший способ сохранения объектов класса и последующее использование. думаю есть готовые классы в нете для ++.
1
|
В астрале
![]() 8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.05.2012, 10:31 | 3 |
boost::serialization.
1
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|
04.05.2012, 12:16 [ТС] | 4 |
ForEveR, не-не-не. Задача на построение алгоритма вручную, а не на получение результата через реализованую сериализацию бустом или MS в их библиотеках или ещё кем. Приведите пожалуйста "самописный" пример, ато мне вероятно придётся решать такую задачку в очень скором будущем, вот и думаю как правильнее всего это сделать.
0
|
В астрале
![]() 8048 / 4805 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
04.05.2012, 12:25 | 5 |
Gepar, Не столь просто реализовать грамотную сериализацию.
1
|
1186 / 542 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
|
|||||||||||
05.05.2012, 11:56 [ТС] | 6 | ||||||||||
ForEveR, ну я понял что вот в xml так не напишешь. Ну а вообще как написать вывод в файл чтобы это не получилось быдлокодом. Вот это плохой вариант:
Скажте если что некрасиво или если вообще идея плохая. Предположительно будет задание написать что-то на наследование и на вывод в файл за часок (на листке), думаю полноценная сериализация как это в MFC или у буста на это время не рассчитывается, рассчитывать будут на что попроще (если вообще такое задание дадут конечно). Добавлено через 1 минуту *чтение дописываю просто, спешу показать как я вывожу в файл. Чтение реализовать планирую подобно: читаю первый символ, switch (символ) case A - читаю как А, case B - читаю как B. Ну вы поняли идею. Другое дело если скажут " а если у нас тут char* есть поле в классе и мы не знаем его длину и там могут быть переводы строки, а ещё там могут быть скобки (") что тогда, а? Съел, а , съел?" Добавлено через 17 минут Дописал чтение из файла, но почему то с тестовыми данными вижу через дебагер что А последнюю (или если последнее что-то другое то это другое) два раза читает, любопытно как это получается оно так...
Добавлено через 21 час 29 минут Ходил вчера на собеседование, задание и правда было такое что нужно написать класс, наследников, а потом вывести в файл и считать из файла. Написал реализацию подобную той что в этой теме, посмотрим что скажут.
0
|
05.05.2012, 11:56 | |
Помогаю со студенческими работами здесь
6
Сохранение и чтение объекта класса в файл/из файла
Реализовать запись в файл и чтение из файла данных, хранящихся в массиве объектов пользовательского типа Вывод текста из файла в консоль и его последующее редактирование Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |