Fortran:将一行数字读入数组



我有一个输入文件,其中一行的格式如下:10110100000001011我想使用循环将每个数字读取到数组元素中。但是如果我用读取(1,"1i1")num(j),j=1,10它只读取第一个整数。我做错了什么?

格式1I1指示Fortran从记录/行读取一个整数,然后继续到下一个记录/行(我的意思是,如果这就是格式所包含的全部内容)。如果您想读取,例如,一行上的10个个个位数整数,请使用格式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

相关内容

  • 没有找到相关文章

最新更新