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

Удалить записанный экземпляр класса из двоичного файла - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Потеря памяти в программе http://www.cyberforum.ru/cpp-beginners/thread678723.html
Подскажите пожалуйста, как отловить в каком месте происходит потеря памяти? Программа считает, но если открыть диспетчер задач, то файл подкачки растет до 2ГБ и программа перестает считать, а там...
C++ DEV-C++ операторы ".", "::" как в VS Помогите разобраться. Как настроить оператор - "." и "::", чтобы после них вылезало окно со списком функций созданого класса? Тоесть как в VS... Пример 1: myClass ob; ob./*здесь окно выбора... http://www.cyberforum.ru/cpp-beginners/thread678714.html
Заполнить массив случайными числами, и вывести его на экран в форме матрицы! C++
Напишите кто программу для этого, потому что мне не получается!
C++ Дан тестовый файл. Вывести его содержимое в другой файл, заменив каждое вхождение пробела на символ нижнего подчеркивания.
Дан тестовый файл. Вывести его содержимое в другой файл, заменив каждое вхождение пробела на символ нижнего подчеркивания. Вывести оба файла на экран используя функцию.
C++ Непонятки с итераторами http://www.cyberforum.ru/cpp-beginners/thread678699.html
Здравствуйте, господа программисты. Пытался написать вот эту задачку, но получается что-то нехорошее. Помогите, пожалуйста! #include <iostream> #include <list> #include <iterator> #include...
C++ Поиск элемента в массиве Почему не выводится цифра 6? #include <stdio.h> #include <string.h> int main () { char szInput = "1234567890"; int k, n = 6; for(k=0; k<strlen(szInput); k++) if(szInput==n)... подробнее

Показать сообщение отдельно
nexen
187 / 180 / 3
Регистрация: 27.01.2012
Сообщений: 1,335
29.10.2012, 18:09  [ТС]
Toshkarik, так в том то и дело, что он сбросился fseek'ом, как ты и сказал.
Покажу на примере. В файле :
4 1 2 3 4.
Первое число - кол-во записей, остальное - данные.
Считываю 4.
C++
1
for (int i=0; i<count; ++i)
Считываю 1.
Это требуемые к удалению данные. Перемещаюсь на начало 4 (предпоследняя запись, которую я смотрю не по SEEK_END, а по count).
Считываю 4ку. EOF
Перемещаюсь на начало 1. (EOF сбрасывается)
Записываю 4. (EOF не ставится, ибо не конец файла)
*В файле сейчас : 4 4 2 3 4*
Уменьшаю count на 1.
Считываю запись с текущего места (то есть должна быть 2ка, но тут происходит не пойми что и считывается как будто пара байт из 4ки и пара байт из 2ки и выходит 00 00 02 00 (если уже к примеру говорить).

Предположим, ошибки нет, то в конце перезаписываю count и получается файл :
3 4 2 3 4.
Так же, так как for идет до count, а я его уменьшил, то до EOF он уже никогда не дойдет
Запись 1 - удалена.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru