#include #include #include int main(int argc, char* argv[]) { if (argc < 3) { std::cerr << "Usage: " << argv[0] << " \n"; return 1; } std::ifstream infile(argv[1], std::ios::binary); if (!infile) { std::cerr << "Error opening input file.\n"; return 1; } std::vector buffer((std::istreambuf_iterator(infile)), std::istreambuf_iterator()); infile.close(); // Step 1: Replace ASCII 171 with 189 /* for (auto& c : buffer) { if ((unsigned char)c == 171) { c = (char)189; } } */ // Step 2: Remove form feed (ASCII 12) from the last 16 bytes only size_t size = buffer.size(); size_t start = (size >= 16) ? size - 16 : 0; for (size_t i = start; i < size; ) { if ((unsigned char)buffer[i] == 12) { buffer.erase(buffer.begin() + i); size--; // update size since vector shrinks } else { i++; } } std::ofstream outfile(argv[2], std::ios::binary); if (!outfile) { std::cerr << "Error opening output file.\n"; return 1; } outfile.write(buffer.data(), buffer.size()); outfile.close(); //std::cout << "Processing complete. Output written to " << argv[2] << "\n"; return 0; }