在Fortran中清除屏幕

我一直在寻找相当长的时间。 有谁知道如何在Fortran语言的控制台应用程序中清除屏幕? 任何帮助将非常令人满意!

对Fortran来说,Fortran对于屏幕或键盘或计算机等概念一无所知。 因此,从Fortran中清除屏幕没有语言标准的方法。 你将不得不寻找一些依赖于平台的方法。

大多数Fortran编译器都有一些这样的方法,例如Intel Fortran提供了SYSTEM函数。

在Fortran 90/95中,最好的选择是系统命令,这是一个供应商提供的扩展(即不是F90 / 95标准的一部分,因此一些模糊的Fortran编译器可能没有它,但是所有主要的编译器都这么做)。

$ cat clear.f90 program call system('clear') end $ gfortran clear.f90 -o clear $ ./clear 

这取决于你的具体系统和编译器。 没有一般的方法。 Fortran并不知道终端屏幕和打印机等特定的硬件设备。 (大多数其他语言也没有)。 细节完全取决于您的具体系统。

我的建议是通过命令行调用相关脚本来清除终端,但这并不好。 将输出写入普通的文本文件,然后执行适当的系统命令来打印该文件以进行屏幕,通常更具可移植性。 这样你可以随心所欲地操作文件。

在这里看到一个西玛问题,从这些问题的一些上述文字被抢救。

相反,我不会调用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

这在FTN95中适用于我

 program call system('CLS') end