在Fortran中,如何读取内容不以空格分隔的二维文件

在Fortran中,如何读取内容不以空格分隔的二维文件,fortran,gfortran,fortran90,Fortran,Gfortran,Fortran90,我在一个文件(number.txt)中存储了一个矩阵,如下所示: 12323456 54254311 76534522 我如何用Fortran读取这样的矩阵,结果是: 1 2 3 2 3 4 5 6 5 4 2 5 4 3 1 1 7 6 5 3 4 5 2 2 使用awk分离这些列并用Fortran读取是非常容易的。但是,我想知道我是否可以只用Fortran来完成所有这些。完成后,我需要通过转置将该矩阵乘以。Fortran格式的输入和输出基于字段。字段不需要用空格分

我在一个文件(number.txt)中存储了一个矩阵,如下所示:

12323456  
54254311  
76534522  
我如何用Fortran读取这样的矩阵,结果是:

1 2 3 2 3 4 5 6  
5 4 2 5 4 3 1 1  
7 6 5 3 4 5 2 2  

使用awk分离这些列并用Fortran读取是非常容易的。但是,我想知道我是否可以只用Fortran来完成所有这些。完成后,我需要通过转置将该矩阵乘以。

Fortran格式的输入和输出基于字段。字段不需要用空格分隔。在这里,您可以将数据<代码> 12323456 >代码>为宽度8或8字段宽度1(或其他组合)的单一字段。

如果要从宽度为1的整数字段中读取值,格式项
I1
将允许读取该值。如果有八个宽度为1的整数字段,则
8I1
将允许读取这些字段

implicit none
character(8) :: input(3)=['12323456','54254311','76534522']
integer i, values(8)

do i=1,3
  read(input(i),'(8I1)') values
  print '(8(I1,:,1X))', values
end do

end

这不是一个如何计划的网站,所以这个问题真的不适合在这里,所以我投票关闭。然而,一个想法是将每一行读入一个字符变量,并使用开始和结束索引(类似于数组)访问每个字符。示例:
read(42,*)MyLine
MyLine(1:1)将包含字符“1”。这不是一个如何编程的网站,所以这个问题在这里并不合适,所以我投票关闭。然而,@DanSp。下定决心,投票结束并在评论中回答问题是让新手相信这是一个回答此类问题的网站的可靠方式。由于整型字段的数量存储在一个变量中,我只需要创建一个格式字符串:write(form,“(a,I0,a)”)(”,ncols,“I1)”。非常感谢。