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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
#1

ifstream, ofstream и объекты класса - C++

05.04.2012, 00:43. Просмотров 1179. Ответов 3
Метки нет (Все метки)

Доброго времени суток, помогите пожалуйста разобраться.

Есть некий класс:
C++
1
2
3
4
5
6
7
8
9
class Tr {
public:
Tr(){}
~Tr(){}
 
private:
char* one;
char* two;
}
и несколько объектов этого класса, которые я хочу сохранить в бинарный файл:

C++
1
2
Tr one;
Tr two;
Как сохранить/загрузить один объект - я понимаю:
C++
1
2
3
4
5
6
7
ofstream outn("test.df", std::ios::out | std::ios::binary);
outn.write((char*) &one, sizeof(Tr));
outn.close();
 
ifstream intn("test.df", std::ios::in | std::ios::binary);
intn.read((char*) &one, sizeof(Tr));
intn.close();
А вот как поступить когда есть несколько объектов? Я так понимаю, нужно узнать размер записанного объекта и переместить на этот размер курсор, после чего осуществить запись или чтение, а вот как это сделать никак не могу понять.

Пробовал переместить курсор так:
C++
1
outn.seekp(sizeof(Tr), std::ios::beg | std::ios::binary);
Но ничего не получилось. И так же задаюсь вопросом, что если программа заранее не знает какого размера объект записан в файле, как ей сообщить об этом? Есть какие-то мысли на счет записывания где-нибудь в другом файле (или в этом же) размеров и количества записанных объектов, но честно говоря не очень до конца понимаю реализацию. Подскажите кто, что может, буду рад любой помощи, если не сложно помогите кодом. Заранее благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.04.2012, 00:43     ifstream, ofstream и объекты класса
Посмотрите здесь:

C++ ifstream/ofstream/fstream
Функции ifstream , ofstream. Исправить C++
Работаем с потоками на C++ ofstream и ifstream C++
сокращенная запись ifstream и ofstream C++
C++ C++ файлы ifstream/ofstream
C++ файлы ifstream/ofstream запись класса C++
Пример class+string+ofstream/ifstream C++
class/string/ifstream/ofstream C++
ifstream ofstream C++
Неправильно выполнение ifstream, ofstream C++
Перегрузка ifstream и ofstream? C++
Работа с потоками ofstream/ifstream C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,052
Записей в блоге: 17
05.04.2012, 07:06     ifstream, ofstream и объекты класса #2
C++
1
2
3
4
5
6
7
8
9
class Tr {
public:
Tr(){}
~Tr(){}
 
private:
char* one;
char* two;
}
Тут нет данных одни указатели, это нельзя сохранить(по крайней мере не имеет смысла)
Подозреваю класс составлен неправильно.
Саймон
0 / 0 / 0
Регистрация: 05.04.2012
Сообщений: 8
05.04.2012, 12:04  [ТС]     ifstream, ofstream и объекты класса #3
Это я для примера просто привел )
Avazart
7063 / 5240 / 262
Регистрация: 10.12.2010
Сообщений: 23,052
Записей в блоге: 17
05.04.2012, 16:07     ifstream, ofstream и объекты класса #4
C++
1
utn.seekp(sizeof(Tr)*n, std::ios::beg);
где n- номер записи(начиная с нуля) от начала файла
Yandex
Объявления
05.04.2012, 16:07     ifstream, ofstream и объекты класса
Ответ Создать тему
Опции темы

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