"archive" is a string, and so scanf("%s", archive); is correct. Remove the ampersand from in front of your "archive", in that line of code.
Same is true for "original file", in line #9. Remove the ampersand.
The address will be correct, but the pointer will be of the wrong type.
You need three pointers to work with three files simultaneously. You are using four now, which is prone to errors, and confusing. Get the logic straight in your mind.
In the while statement, "n = " is unnecessary.