1

10110100000001011 のようにフォーマットされた 1 行の入力ファイルがあります。また、ループを使用して各数字を配列要素に読み込みたいと思います。しかし、 Read (1, "1i1") num(j) , j =1,10 でフォーマットすると、最初の整数のみが読み取られます。私は何を間違っていますか?

4

1 に答える 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 に答える