Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2012, 21:16   #1
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию Дозапись в бинарный файл

Всем привет! Необходимо в процессе работы программы производить дозапись в бинарный файл. Как я понимаю необходимо спозиционировать put - указатель в конец файла и произвести дозапись. Только не совсем понимаю как поставить указатель на конец файла. И нужно тогда поставить флаг при создании файла, а какой?

Заранее спасибо.
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 30.07.2012, 21:18   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Только не совсем понимаю как поставить указатель на конец файла.
fseek(<FILE переменка>,0,SEEK_END) - ставит в конец
Кстати - файл то не через fstream крутишь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 30.07.2012, 21:20   #3
Стремящийся
Форумчанин
 
Аватар для Стремящийся
 
Регистрация: 01.11.2011
Сообщений: 172
По умолчанию

Код:
Кстати - файл то не через fstream крутишь?
Да, виноват, не указал, что через fstream
Желание тысяча возможностей, нежелание - тысяча причин
Стремящийся вне форума Ответить с цитированием
Старый 30.07.2012, 22:08   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

По-моему там seekg() метод. Почитай на MSDN.
К тому же кажись если открывать его с параметром ios::app то он вроде как сам в конец становится.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 31.07.2012, 12:16   #5
ArmanPrestige
Главное желание.
Форумчанин
 
Регистрация: 28.11.2011
Сообщений: 122
По умолчанию

Код:
fstream file;
file.open("Test.dat", ios::app | ios::out | ios::binary);
Флаг app - как, сказал Stilet, начинает запись в файл с конца файла.
out говорит о том что мы будем только записывать(если бы поставили in то и читать из файла можем). binary - ну тут все понятно.
так же можно было бы поставить указатель на конец файла с помощью функции(как опять таки сказал Stilet)
Код:
file.seekg(0, ios::end); //устанавливает указатель чтения на 0 байт с конца файла
но seekg() устанавливает указатель чтения. указатель записи вот как
Код:
file.seekp(0, ios::end); //устанавливает указатель записи на 0 байт с конца файла
если нам надо установить указатель записи к примеру на 10 байт с конца файла, то тогда
Код:
file.seekp(-10, ios::end);
Вот кстати некоторые биты режимов, может пригодятся:
in - Открытие для чтения, out - открытие для записи, ate - чтение начиная с конца файла, app - запись начиная с конца файла, trunc - обрезать файл до нулевой длины если он уже существует, nocreate - не открывать не существующий файл, noreplace - не открывать для вывода существующий файл если не установлены флаги ate или app.
Я могу, Я хочу, Я буду!
ArmanPrestige вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дозапись в файл cezer Общие вопросы Delphi 8 14.06.2012 22:45
Дозапись в текстовый файл Lui C++ Builder 0 29.05.2012 16:46
Дозапись данных в файл DarkDeidara Помощь студентам 6 18.05.2011 10:23
Дозапись информации в файл. ROMA2PVT Помощь студентам 11 22.03.2010 12:29
дозапись в файл Djaconda Общие вопросы C/C++ 1 04.06.2008 23:52