2017-05-26 13 views
1

txtファイルを開くコードを書きたい場合は、そのファイルに実数を書き込んで、コード内の変数に渡します。Fortranの同じファイルから書込みしてから読み取る

私のコードは次のようになります。変数これをコンパイルした後

open (unit = 22, file = x_file, status = 'old') 
write(22, *) 1.2345 

do while (ios == 0) 
    read(22,*, iostat=ios) reader 
end do 

write(*,*) reader 

「読者は」非常に非常に小さな数(2.2460454138806765E-314)を得ました。 ライン

write(22, *) 1.2345 

を削除し、私の変数「リーダー」ファイルのtxtに直接番号を傾けた後、1.2345になります。その理由は何でしょうか?

答えて

1

ファイル

write(22, *) 1.2345 

に値を書き込んだ後、ファイルは、端部に配置されています。

ファイルは何も読まない

read(22,*, iostat=ios) reader 

あなたの文の最後に到達し、ゼロでない値の末尾が進行、さらにファイルの末尾にiosを設定します。 readerの値は未定義です!

iostatがゼロでない場合、入力リストの変数の値を使用することはできません。

open (unit = 22, file = x_file, status = 'old') 

write(22, *) 1.2345 

rewind(22) 

read(22,*, iostat=ios) reader 
if (ios/=0) stop 

write(*,*) reader 

は、あなたが望むましたか?

+0

ありがとうございます!それは私のために非常に役立った:) –

+0

私は別の質問がある:私はどのように私のテキストを書き込む(31、*)コマンドを新しい行に書くことができますか? –

+0

それはそうするべきです。新しい投稿で新しい質問をもっと詳しく聞くことができます。 –

関連する問題