用Fortran编写的程序在运行的时候,一般是在显示器终端输出黑底白字或白底黑字(取决于终端设置)。如何让程序输出彩色文字呢?记得以前的Visual Fortran内置了这样的函数,但是不具备通用性。实际上,通过终端内置的转义符也可以定义文字格式。这种方法的优点是不依赖系统和编译器厂家,且无需外部库支持,前提是必须用ANSI兼容的终端(从Windows10开始,内置的终端支持ANSI;早先Windows的内置终端不支持ANSI,需要用其它终端运行)。
假设string1是足够长的字符串,定义文字格式的语句具有以下格式:
string1= char(27) // '[Cm' // 'T'
其中,char(27)是无法输入的转义符(也就是键盘左上角的ESCape键);C是一系列的格式控制符,见下表;若有多个格式控制符,用分号隔开;T是我们将要加入的文本内容。
当代码中存在多个定义格式的语句时,以上写法容易导致格式之间相互影响,因此建议用下面罗嗦一点的写法,其中C中要包含0控制符:
string1= char(27) // '[Cm' // 'T' // char(27) // '[m'
常用的ANSI控制符如下:
| 0 | 清除之前定义的控制符 |
| 1 | 亮色 |

这篇博客介绍了如何在Fortran程序中利用ANSI控制符实现终端输出的彩色文字,这种方法适用于ANSI兼容的终端,如现代Windows和Linux系统的终端。文章提供了不同颜色和格式的示例,并讨论了格式控制的注意事项,以及使用第三方库foul简化输出的选项。内容已通过多种Fortran编译器和操作系统测试。
最低0.47元/天 解锁文章
326





