@tsovak

Как переместить элемен в начало двоичного файла?

Ввввввввввввввввввввввввввввввввввввввввввввввввввввввввввввв
  • Вопрос задан
  • 2406 просмотров
Пригласить эксперта
Ответы на вопрос 2
donkaban
@donkaban
Умею рисовать тени
-- тут был неправильный коммент, я неточно прочел условие задачи
1. Всасывать весь файл в память - не катит даже для лабораторной работы. Если можно - задача не задача вообще.
2. Я бы прочел файл один раз, запомнил seek_pos для минимума и вторым проходом записал бы все в новый файл. Это 2N, плохо, но не смертельно.
3. Код от ОП - дикий непролазный лес, отвратительный даже для студента-гуманитария
4. N*LogN можно получить чанками, но код запутается, что для лабы не очень.
Ответ написан
gbg
@gbg Куратор тега C++
Любые ответы на любые вопросы
Почему у вас память выделяется под int, а читаются байты размером с double?

Почему у вас поганый паскальский стиль с выделением переменных где-то далеко в начале программы и их использованием? Почему вы не объявили переменную i в заголовке цикла?

Почему вы используете функции из стандартной библиотеки C (fopen, fwrite, ...), хотя пишите на C++?

Зачем вы перемещаете указатель в начало файла сразу после открытия? Сразу после открытия указатель и так стоит на начале.

В том виде, как сделано у вас, можно все операции проделать в памяти, выполнив отображение файла.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы