私はこれをかなり長い間探していました。Fortran 言語のコンソール アプリで画面をクリアする方法を知っている人はいますか? どんな助けでも大歓迎です!
7 に答える
Fortran、qua Fortran は、画面やキーボード、さらに言えばコンピュータなどの概念について何も知りません。したがって、Fortran から画面をクリアする言語標準の方法はありません。プラットフォームに依存するアプローチを見つける必要があります。
ほとんどの Fortran コンパイラには、これを行う何らかの方法があります。たとえば、Intel Fortran は SYSTEM 関数を提供します。
私が呼び出さない他の人に反してSYSTEM()
(標準のFortran 2008の代替手段は ですexecute_command_line()
)、正しいANSIエスケープコードを出力しますhttp://en.wikipedia.org/wiki/ANSI_escape_code:
print *, achar(27)//"[2J"
これは、 を呼び出すよりもはるかに高速ですSYSTEM()
。
これは一般的な Linux 端末では機能しますが、MS Windows 端末では機能しません。
エスケープ コードの使用方法に関する別のより実用的なリファレンスは、http://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.htmlです。
Fortran 90/95 では、ベンダーが提供する拡張機能であるシステム コマンドが最適なオプションです (つまり、F90/95 標準の一部ではないため、一部のあいまいな Fortran コンパイラにはありませんが、すべての主要なコンパイラにはあります)。
$ cat clear.f90
program
call system('clear')
end
$ gfortran clear.f90 -o clear
$ ./clear
特定のシステムとコンパイラに依存します。一般的な方法はありません。Fortran は、端末画面やプリンターなどの特定のハードウェア デバイスについて認識していません。(他のほとんどの言語もそうではありません)。詳細は、特定のシステムに完全に依存します。
私のアドバイスは、コマンドラインから関連スクリプトを呼び出して端末をクリアすることですが、これは良くありません。通常、出力を通常のテキスト ファイルに書き込み、適切なシステム コマンドを実行してそのファイルを画面に出力する方が移植性が高くなります。このようにして、必要に応じてファイルを操作できます...
上記のテキストの一部が救出された同様の質問については、こちらを参照してください。
これはFTN95で私のために機能します
program
call system('CLS')
end