Он называется файловым архиватором, производящим самораспаковывающиеся архивы.

но я столкнулся с одной замечательной проблемой, которая оказалась простой для понимания и сложной для поиска какого-либо способа ее решения. Проблема в:

Напишите программу, которая читает текст с ввода и печатает какую-то другую программу на выходе. Если мы скомпилируем и запустим напечатанную программу, она должна вывести оригинальный текст.

Предполагается, что вводимый текст будет достаточно большим (более 10000 символов).

Единственное (и очень строгое) требование состоит в том, что размер архива (то есть напечатанной программы) должен бытьстрого меньше чем размер исходного текста. Это делает невозможными очевидные решения, такие как

std::string s;
/* read the text into s */
std::cout << "#include<iostream> int main () { std::cout<<\"" << s << "\"; }";

Я считаю, что некоторые методы архивации должны быть использованы здесь.

Ответы на вопрос(5)

Ваш ответ на вопрос