2016-07-11 7 views
0

Fortran(90)の端末の線幅をtput colsと呼び出すことは可能ですか?可能な場合はクロスプラットフォームですか?Fortranで端末の幅を取得するにはどうすればよいですか?

私は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システムでは端末の幅が異なることを意味します。あなたを助けることができるライブラリの1つは、C言語で書かれたncursesです。 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 'を呼び出すか環境変数を取得するよりもはるかに信頼性が高いと思います。 –

関連する問題