Прочитайте байт из двоичного файла, а затем выведите его в другой файл.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Прочитайте байт из двоичного файла, а затем выведите его в другой файл.

Сообщение Anonymous »

Я хочу прочитать каждый байт из исходного байта, а затем записать эти байты в целевой файл при этих условиях.
  • Если прочитанный байт равен 0x01, затем запишите 0xFF и 0xFF в целевой файл.
  • Если прочитанный байт не 0x09, или не 0x0A, или не 0x0B, или не 0x0C, или не 0x0D, или не 0x0E, тогда напишите этот прочитанный байт в целевой файл.
  • Если прочитанный байт равен 0x09, то прочитайте следующий байт и запишите его в целевой байт.
  • Если прочитанный байт равен 0x0A, затем прочитайте следующий байт, запишите 0x0A перед каждым прочитанным байтом, пока строка не достигнет 0x09, или 0x0B, или 0x0C, или 0x0D, или 0x0E.
  • Если прочитанный байт равно 0x0B, затем читайте следующий байт, записывайте 0x0B перед каждым прочитанным байтом, пока строка не достигнет 0x09, или 0x0A, или 0x0C, или 0x0D, или 0x0E.
  • Если прочитанный байт равен 0x0C, то читайте следующий байт, записывайте 0x0C перед каждым прочитанным байтом, пока строка не достигнет 0x09, или 0x0A, или 0x0B, или 0x0D, или 0x0E.
  • Если прочитанный байт равен 0x0D, то прочитайте следующий байт. байт, записывайте 0x0D перед каждым прочитанным байтом, пока строка не достигнет 0x09, или 0x0A, или 0x0B, или 0x0C, или 0x0E.
  • Если прочитанный байт равен 0x0E, то прочитайте следующий байт, напишите 0x0E перед каждым прочитанным байтом, пока строка не достигнет 0x09, или 0x0A, или 0x0B, или 0x0C, или 0x0D.
  • Если прочитанный байт не 0x09, не 0x0A или не 0x0B, или не 0x0C, или не 0x0D, или не 0x0E, или не 0x01, затем запишите этот байт в целевой файл.
Например, содержимое целевого файла

Код: Выделить всё

00-FF-23-09-26-2A-3F-0A-14-34-8F-23-09-11-0B-23-CD-22-0C-01-02-0D-14-F8-0E-19-09-01
тогда конечный файл должен быть

Код: Выделить всё

00-FF-23-26-2A-3F-0A-14-0A-34-0A-8F-0A-23-11-0B-23-0B-CD-0B-22-0C-01-0C-02-0D-14-0D-F8-0E-19-FF-FF
Тогда моя программа выглядит так, как показано ниже, все работает хорошо, за исключением того, что триггерный байт 0x0B не работает.
Может кто-нибудь объяснить, почему?
Спасибо, что прочитали.

Код: Выделить всё

#include 
#include 
void processFile(const std::string &inputFile, const std::string &outputFile)
{
std::ifstream inFile(inputFile, std::ios::binary);
std::ofstream outFile(outputFile, std::ios::binary);

if (!inFile) {
std::cerr 

Подробнее здесь: [url]https://stackoverflow.com/questions/78718728/read-a-byte-from-binary-file-then-output-it-to-another-file[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»