質問: ch - 100; file << ch; } cout << "ファイル" << fname << "が正常に復号化されました"; file.close(); file2.close(); } ``` ### やってみたこと 1 ファイルの用意 ![ファイルの用意](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/39e4020cca1cbd0312b26bf4509d7680.png) 2暗号化コードの実行 ![暗号化](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/ec97098daad5fad416c1624ffe8978ec.png) 3復号化コードの実行 ![復号化](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/3decdaa9f9ea7af1c2095e21e94047ab.png) このように復号化を実行しても元に戻りません。 なにが間違いなのでしょうか。。。。 ### 開発環境 VitualStudio2019 C++ ### 参考文献 > > https://codescracker.com/cpp/program/cpp-program-encrypt-file.htm > > >
回答: ``` ch = ch + 100; ``` まずcharは1バイトなので0~255の値しか入れられません。 1. chをgetByteでバイトの変数へさらにint型の変数に代入 2. 100を加算 3. 255を超えていたら255を引く 4. int型の変数をバイトの変数へ代入getStringでchに戻す 以上の手順で暗号化できます 解凍はその逆になります。 (-100だから判定も0より小さい場合)