Fortran(90)の端末の線幅をtput cols
と呼び出すことは可能ですか?可能な場合はクロスプラットフォームですか?Fortranで端末の幅を取得するにはどうすればよいですか?
私はgfortranだけを使用しているので、このコンパイラで動作すれば十分です。
Fortran(90)の端末の線幅をtput cols
と呼び出すことは可能ですか?可能な場合はクロスプラットフォームですか?Fortranで端末の幅を取得するにはどうすればよいですか?
私はgfortranだけを使用しているので、このコンパイラで動作すれば十分です。
端末/コンソール機能は、常にシステム依存機能です。これは、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
それが指定されたウィンドウのサイズを記憶します。
ありがとう、それは私が探していた答えのようなものでした。ライブラリは不幸にもWindowsでは存在しませんが、Linuxでは少なくとも 'tput cols 'を呼び出すか環境変数を取得するよりもはるかに信頼性が高いと思います。 –
こんにちは、私はStackOverflowで歓迎します。あなたがそれの自然な部分ではない場合は、質問にタグを入れてはならないhttp://meta.stackexchange.com/questions/19190/should-questions-include-tags-in-the-titles –
あなたははるかに良いです( 'execute_command_line()'のように)オペレーティングシステムとの対話を含んでいるため、Fortran 2008の機能を使用しています。 Fortran 90は古すぎます。 –
それを知らなかった、編集していただきありがとうございます。 Fortran 2008に端末幅の取得などの機能が含まれているか、操作システムによって異なるコマンドを呼び出す必要がありますか? 編集:偶発的に押されました –