2016-07-11 45 views
0

除了調用tput cols之外,是否還有可能在Fortran(90)中獲取終端線寬?如果可能的話,它是跨平臺的嗎?如何在Fortran中獲取終端寬度?

我只使用gfortran,所以它足以使用這個編譯器。

+0

嗨,歡迎在StackOverflow。你不應該把標籤放在問題中,如果它不是它的自然部分http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-their-titles –

+1

你好多了使用Fortran 2008功能,因爲它們包括與操作系統的交互(如'execute_command_line()')。 Fortran 90太舊了。 –

+0

不知道,謝謝編輯。 Fortran 2008包含獲取終端寬度之類的東西嗎?還是必須根據操作系統調用不同的命令? 編輯:無意中按Enter回到早期 –

回答

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 

它存儲指定的窗口的大小。

+0

謝謝你,那是我正在尋找的那種答案。這個庫在Windows上並不存在,但這聽起來至少在Linux上比調用'tput cols'或獲取環境變量更可靠。 –

相關問題