10110100000001011 のようにフォーマットされた 1 行の入力ファイルがあります。また、ループを使用して各数字を配列要素に読み込みたいと思います。しかし、 Read (1, "1i1") num(j) , j =1,10 でフォーマットすると、最初の整数のみが読み取られます。私は何を間違っていますか?
3205 次
1 に答える
4
このフォーマット1I1
は、Fortranにレコード/行から単一の整数を読み取り、次のレコード/行に進むように指示します(つまり、フォーマットに含まれるのがそれだけであるかどうかを意味します)。たとえば、1行に10個の1桁の整数を読み取りたい場合は、形式を使用します10I1
。
Fortran 2008では、「無制限のフォーマット項目」が追加されているため、フォーマットを作成するときに項目の数を知る必要はありません*(i1)
。
両方の方法のコード例:
program tst
integer :: array1 (10), array2 (10)
open (unit=20, file="digits.txt", access="sequential", form="formatted")
read (20, '(10i1)' ) array1
write (*, *) array1
rewind (20)
read (20, '( *(i1) )' ) array2
write (*, *) array2
end program tst
于 2013-02-20T20:34:56.697 に答える