2016-07-11 1 views
0

가능하면 교차 플랫폼 인 tput cols 옆에 Fortran (90)의 터미널 선 너비를 얻을 수있는 가능성이 있습니까?포트란에서 터미널 폭을 얻으려면 어떻게해야합니까?

gfortran 만 사용하고 있으므로이 컴파일러에서 작동하는 것으로 충분합니다.

+0

안녕하세요, StackOverflow에 오신 것을 환영합니다. 질문이 자연스러운 것이 아니라면 질문에 태그를 넣으면 안됩니다. http://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles –

+1

당신은 훨씬 낫습니다. ('execute_command_line()'과 같은) 운영체제와의 상호 작용을 포함하기 때문에 Fortran 2008 기능을 사용한다. Fortran 90이 너무 오래되었습니다. –

+0

몰랐습니다. 편집 해 주셔서 감사합니다. Fortran 2008에는 터미널 폭을 확보하는 것과 같은 것이 포함되어 있습니까? 아니면 운영 체제에 따라 다른 명령을 호출해야합니까? 편집 : 실수로 누를 때까지 입력 –

답변

1

터미널/콘솔 기능은 항상 시스템 종속 기능입니다. 즉, Unix 및 Windows 시스템에서는 터미널 너비가 달라집니다. 당신을 도울 수있는 라이브러리 중 하나가 C 언어로 작성된 ncurses입니다. this이 Fortran 2003을 사용하는 것처럼이 라이브러리에 대한 일부 포트란 인터페이스가 있습니다.

이 라이브러리가 사용자의 요구 사항에 맞으면, 정수 변수 LINES 및 COLS에서 정의 된대로 화면 크기로 채워집니다. 이 특정 윈도우의 크기를 저장

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 

: 앞서 언급 포트란 인터페이스에서

는 getmaxyx 루틴이있다.

+0

감사합니다. 내가 찾던 답변이었습니다. 라이브러리는 유감스럽게도 Windows에서는 존재하지 않지만 적어도 Linux에서는'tput cols '를 호출하거나 환경 변수를받는 것보다 훨씬 안정적이라고 들립니다. –

관련 문제