Top.Mail.Ru
Ответы

Бинарные файлы C++

Есть бинарный файл, который делится на 2 равные части. Байты каждой половины надо перезаписать в обратном порядке, также части поменять местами. Центральный байт не меняется. Все преобразования должны быть "на месте", без доп образований. Типа: динамический массив или временных файлов.

Дополнен

Хороший вопрос "что значит "на месте"". Я пока тоже не особо понял.

По дате
По рейтингу
Аватар пользователя
Новичок
8лет

Как я понял "на месте" подразумевает использование не блочных элементов типа массивы, а одиночный элемент. int temp1, temp2; и функциями fputc() и fgetc() считывать по одному символу и менять местами.

Аватар пользователя
Оракул
8лет

> Байты каждой половины надо перезаписать в обратном порядке, также части поменять местами. Центральный байт не меняется

это абсолютно то же самое, что и просто перевернуть файл задом наперёд, ьез разбиения на части

Аватар пользователя
Мудрец
8лет

Чего? Какой такой центральный байт? Если файл делится на 2 равные части, то там не может быть никакого "центрального байта". А если центральный байт есть, то число байт - нечётное, и он на 2 не делится... На месте стой, раз-два... Военный колледж, что-ли?
Да, Чувак, повезло тебе с задачами...

Аватар пользователя
Высший разум
8лет

Сли файл в неск. гигибайт, придётся выпендриваться

А меньше - прочитал и пиши от конца в начало...

Вот только не понял, что значит "на месте", без доп образований? На каком-таком "месте", в файле нереально