如何在Fortran中获得终端宽度?

时间:2016-07-11 12:11:30

标签: io terminal fortran fortran90

在调用tput cols旁边是否有可能获得Fortran(90)中的终端线宽,如果可能的话,它是跨平台的?

我只使用gfortran,所以只要它适用于这个编译器就足够了。

1 个答案:

答案 0 :(得分:1)

终端/控制台功能始终是系统依赖功能。这意味着,对于Unix和Windows系统来说,获得终端宽度会有所不同。其中一个可以帮助你的库是ncurses,用C语言编写。这个库有一些Fortran接口,比如this使用Fortran 2003。

如果这个库符合您的要求,请查看定义的LINES和COLS中的整数变量,它们将填充屏幕大小。

在之前提到的Fortran接口中,有getmaxyx子例程:

subroutine getmaxyx(win,y,x) bind(C, name='macro_getmaxyx')
   use iso_c_binding
   use ncurses_types
   type (C_PTR), value :: win
   integer(C_INT) :: y,x
end subroutine

它存储指定窗口的大小。