Implement an extended version of the Caesar cipher that uses the characters from '!' (exclamation, ASCII 33) to '~' (tilde, ASCII 126).
Any character (printable or not) that falls outside of the ASCII range of 33-126 should either trigger the program to report an input error or should be left unchanged during both encryption and decryption (this will ensure that printable files will remain printable).
Key values range from 0 to 93 (shift value for Caesar cipher).
Example with key=1
Plaintext: Hello{~World~}!
Ciphertext: Ifmmp|!Xpsme!~"
Decrypted text: Hello{~World~}!
Minimum Implementation Requirements:
Program can be GUI (very challenging), Command-line (challenging), or simply prompt the user for inputs (easiest), but it must:
If it is command-line then the command-line arguments shall be used to indicate an input file (-i input_file), an output file (-o output_file), an integer key value (-k key_value), and a process indicator (-p [encrypt | decrypt]).
PLEASE WRITE IN C++ and provide output. Please makre sure code correctly excutes properly