Fortran:将一行数字读入数组

时间:2013-02-20 20:18:30

标签: file loops fortran

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

1 个答案:

答案 0 :(得分:3)

格式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