除了調用tput cols
之外,是否還有可能在Fortran(90)中獲取終端線寬?如果可能的話,它是跨平臺的嗎?如何在Fortran中獲取終端寬度?
我只使用gfortran,所以它足以使用這個編譯器。
除了調用tput cols
之外,是否還有可能在Fortran(90)中獲取終端線寬?如果可能的話,它是跨平臺的嗎?如何在Fortran中獲取終端寬度?
我只使用gfortran,所以它足以使用這個編譯器。
終端/控制檯功能始終是系統依賴功能。這意味着,獲取終端寬度將在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
它存儲指定的窗口的大小。
謝謝你,那是我正在尋找的那種答案。這個庫在Windows上並不存在,但這聽起來至少在Linux上比調用'tput cols'或獲取環境變量更可靠。 –
嗨,歡迎在StackOverflow。你不應該把標籤放在問題中,如果它不是它的自然部分http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles –
你好多了使用Fortran 2008功能,因爲它們包括與操作系統的交互(如'execute_command_line()')。 Fortran 90太舊了。 –
不知道,謝謝編輯。 Fortran 2008包含獲取終端寬度之類的東西嗎?還是必須根據操作系統調用不同的命令? 編輯:無意中按Enter回到早期 –