1

私はFortranを初めて使用し、質問があります。次の行から 2 つの整数を読み取る必要があります。

K=234, L=241, I=0

最後の値には興味がありません。整数234と241だけが必要です。私はそれを試しました

read(20,'(3X,I3,3X,I3)')a,b

コンパイルはできますが、プログラムを実行すると、常にエラー メッセージが表示されます。

At line 27 of file test.f90 (unit = 20, file = 'int_p2.dat')
Fortran runtime error: Bad value during integer read

私が間違っていることを知りません。誰かアドバイスをくれませんか?

4

2 に答える 2

-2

あなたのコードに問題はありません。(もちろん、あなたのフォーマットは間違っていますが、実行時エラーは発生しません)。また、文字 (K,L) を読み取るのではなくエスケープしています。コンパイラは文句を言うべきではありません。しかし、3X1つの整数を使い果たしますK=234

Program  se
Implicit None
integer :: K,L,I,a,b

open(20, file="se.in",status='old')
read(20,'(3X,I3,3X,I3)')a,b
close(20)
write(*,*)a,b
End Program  se


$ cat se.in 
K=234, L=241, I=0

$gfortran se.f90
$ ./a.out 
          34         241

それでも問題が発生し、これが 1 つの行を読み取ろうとしている場合は 、ファイルの前にあるスペースをすべて削除してください。K= コードが非整数を読み取っているため、これはエラーだと思います。

于 2013-07-17T16:16:35.640 に答える