Предмет: Информатика, автор: Аноним

Язык программирования С++
Задание : Выполнить парное сравнение двух бинарных файлов, содержащих массивы из 20 элементов. Большие из пар элементов записываются в конец третьего файла. Меньше - сводятся в квадрат, и выводятся на экран

Ответы

Автор ответа: maxpavlutenkof
1

Объяснение: ничего не понятно про "наибольшие пары" и про сведение "наименьших" в квадрат, потому в 3 файл я отсеиваю наибольший элемент из пары, а в качестве сведения - я сортирую выводимые пары по 8 пар в строке, с пробелом меж ними (крч как в хекс-редакторах)

# include <iostream>

# include <fstream>

// количество элементов

const size_t _count = 20;

int main() {

// открываем и читаем 1 файл

std::ifstream file1("file1.bin", std::ios_base::binary);

char* buf1 = new char[_count];

file1.read(buf1, _count);

// открываем и читаем 2 файл

std::ifstream file2("file2.bin", std::ios_base::binary);

char* buf2 = new char[_count];

file2.read(buf2, _count);

// открываем 3 файл

std::ofstream file3("file3.bin", std::ios_base::binary);

char* buf3 = new char[_count];

// записываем наибольшее из пары в буффер для 3 файла

for (int i = 0; i < _count; i++) {

 // перенос строки

 if (i % 8 == 0) std::cout << " ";

 if (i % 16 == 0) std::cout << std::endl;

 if (buf1[i] > buf2[i]) {

  buf3[i] = buf1[i];

  std::cout << std::hex << std::uppercase << short(buf2[i]) << " ";

 }

 else {

  buf3[i] = buf2[i];

  std::cout << std::hex << std::uppercase << short(buf1[i]) << " ";

 }

}

file3.write(buf3, _count);

};

Похожие вопросы