Fortran/テキスト入出力

出典: フリー教科書『ウィキブックス(Wikibooks)』
Program Hello
    Print *, "Hello World!"
end program

のようにコード実行すると、

Hello World!

と表示される。

Print の使い方の規則は、「Print 書式,出力しようとする文字列 」という規則である。書式が「*」の場合は標準設定の書式になるので、普通のコンパイラなら例のコードの場合なら「Hello World!」と表示されるという仕組みである。


書式の使いかたは、たとえば表示したい文言が数値「1234」なら、

Program Hello
    Print"(I6)", 1234  
end program

のようにソースコードを書くと、これは6文字ぶんのスペースを確保し、

  1234

のように表示される。「1234」の前に2文字ぶんの空白が確保された形で表示される。


ファイル入出力

Fortranプログラムは,read文を用いて標準入力またはファイルから読み込み,print文を用いて標準出力に書き込むことができます.write文では、標準出力やファイルに書き込むことができます。ファイルに書き込む前に、ファイルをオープンして、プログラマがファイルを参照するためのユニット番号を割り当てる必要があります。writeステートメントを使用してステートメントをデフォルト出力に書き込む場合の構文は、write(*,*)です。使い方は以下の通りです。

program hello_world
    implicit none
    write (*,*) "Hello World!"
end program

このコードは、print *,ステートメントを使用した場合と同様に、"Hello World!"をデフォルトの出力(通常は標準出力、スクリーン)に書き込みます。

ファイル出力のデモとして、次のプログラムは、キーボードから2つの整数を読み取り、その整数と積を出力ファイルに書き出します。

program xproduct
    implicit none
    integer :: i, j
    integer, parameter :: out_unit=20

    print *, "enter two integers"
    read (*,*) i,j

    open (unit=out_unit,file="results.txt",action="write",status="replace")
    write (out_unit,*) "The product of", i, " and", j
    write (out_unit,*) "is", i*j
    close (out_unit)
end program xproduct

ファイル "results.txt "にはこれらの行が含まれます。

The product of 2 and 3
is 6

デフォルトでは、各printまたはwriteステートメントは、新しい行に印刷を開始します。例えば、以下のようになります。

program hello_world
    implicit none

    print *, "Hello"
    print *, "World!"
end program

標準出力に出力します。

Hello
World!

もし、"Hello World!"を1つのprint文に入れていたら、"Hello World!"というテキストが1行に表示されたことになります。