私はFortran初心者です。私は、テキストファイルを読んでその内容を個々の変数に保存したいと思っています。私は非常に有用なFortranチュートリアル(http://www.math.hawaii.edu/~hile/fortran/fort7.htm#read)を見つけました。ここに挙げられている例の1つに従おうとしています。私は私の現在のディレクトリにこのテキストファイルを保存したFortranでカンマ区切りのテキストファイルを行単位で読む
1.23, 4.56, 7.89
11, 13, "Sally"
:具体的には、私はと呼ばれるテキストファイル次のテキストdata.txtをを作りました。私は、少なくともアップ機能が含まれて考えるGNU Fortranコンパイラーを使用しています
PROGRAM test
IMPLICIT NONE
REAL :: x, y, z
INTEGER :: m, n
CHARACTER first*20
OPEN(UNIT = 7, FILE = "data.txt")
READ(7,*) x, y, z
READ(7,*) m, n, first
PRINT *, x
PRINT *, y
PRINT *, z
PRINT *, m
PRINT *, n
PRINT *, first
END PROGRAM test
:その後、私は、次のコードを含むファイルtest.f90を(も私の現在のディレクトリにそれを保存する)を作成していますFortran95を含む。上記のコードは、少なくともデフォルト設定では大丈夫です。 Iが得られた実行可能ファイルを実行する場合には、私はこのエラーメッセージを取得:
At line 10 of file test.f90 (unit = 7, file = 'data.txt')
Fortran runtime error: End of file
ライン10はラインREAD(7、*)M、N、最初です。上記のコードで私が間違っていることを見てもらえますか?
別のユニット番号(> 10)で試してください。おそらく、あなたのコンパイラは、事前に接続されたデバイスにユニット7を使用しています。 – eriktous
@eriktous:ありがとうございます。残念ながら、これは問題を解決しません(少なくとも私が15の単位を使用する場合は)。しかし、アドバイスをありがとうございます。あらかじめ接続されたデバイスのために10以下の単位がコンパイラによって使用されるかもしれないことを知ることは本当に良いことです。私はこれを念頭に置いておきます。ありがとう! – Andrew