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

Перемещение по бинарному файлу - C++

Восстановить пароль Регистрация
 
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
04.05.2012, 22:06     Перемещение по бинарному файлу #1
Перемещаться можно по файлу использую функции seekg() для чтения и seekp() для записи... В общем для того, чтобы перемещаться по файлу и считать структуру нам необходимо необходимо знать размер структуры. Когда структура объявлена таким образом
C++
1
2
3
4
5
6
struct SomeStruct
{
     int x;
     int y;
     char str[10];
};
все понятно.
А если структура объявлена вот так
C++
1
2
3
4
5
6
struct SomeStruct
{
     int x;
     int y;
     char *p;
};
Мы уже никак не узнаем размер структуры. Потому как указатель может содержать в себе любую информацию, любого объема. Получается, что во втором случае перемещаться по файлу нельзя будет?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2012, 22:06     Перемещение по бинарному файлу
Посмотрите здесь:

путь к файлу C++
Довести до ума программу про бинарному дереву C++
итератор для обхода по бинарному дереву C++
C++ Перемещение по текстовому файлу.
Перемещение по файлу клавишами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
04.05.2012, 22:24     Перемещение по бинарному файлу #2
Вообще в таких случаях заводят переменную указывающую размер динамических данных.
zss
Модератор
Эксперт С++
 Аватар для zss
5942 / 5547 / 1783
Регистрация: 18.12.2011
Сообщений: 14,154
Завершенные тесты: 1
04.05.2012, 22:27     Перемещение по бинарному файлу #3
Добавьте в структуру
int n;
и храните в n размер массива p.
Тогда размер записи будет равен
размеру структуры плюс n*sizeof(char)
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
04.05.2012, 22:43  [ТС]     Перемещение по бинарному файлу #4
Спасибо... Буду пробовать
Yandex
Объявления
04.05.2012, 22:43     Перемещение по бинарному файлу
Ответ Создать тему
Опции темы

Текущее время: 07:06. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru