program Test
implicit none
character (LEN=100) :: input
character (LEN=100) :: output
print *,"Please input your message: "
read *, input
すべての文字について、Ceaser's Cipher で暗号化します
計算
print *,"This is the output: "
write (*,"(2a)") "Message = ", out
end program Test
これは完全には機能しません。
入力のすべての文字について、modulo(iachar()) 関数を使用して変換します。印刷まで機能し、デバッグに従いました。暗号化は問題ありません。しかし、出力の問題は LEN=100 にあります。do ループは 100 回実行され、存在しない文字をゴミに変換し、出力時に UNDEFINED TYPE でプログラムを中断します。
したがって、「test」と入力すると、CBNC*GARBAGE-TO-100* が暗号化されて出力されません。長さを 4 と定義して実行すると、機能します。長さを定義せずにできるようにしたいです。これを回避する方法はありますか?