[Fortran] 纯文本查看 复制代码
program main
implicit none
integer :: ncols,nrows,xllcorner,yllcorner,cellsize,nodata
character(len=20) :: str(10)
integer :: a(4,5),i,j
open(5,file='1.txt',status='old')
open(6,file='2.txt')
! read(5,'(/////)') !本句相当于跳过了被读入文件的前六行,括号里为空时表示1行,斜杠数加1为跳过的全部行数。有一个问题需要注意,在本代码中,如果跳过行数超过6,则执行报错!
!具体原因请加群2338021向群主咨询。由于讨论這个问题时,他一直笑而不语,所以到现在我也不知道是为什么,且不知该如何自行查询......
! read(5,'(6x,i6)') ncols !注意本句和以下几句x前的数值不能包括最后的数字所占字节数,否则写入输出文件的数值为0
! read(5,'(6x,i6)') nrows
! read(5,'(11x,i6)') xllcorner
! read(5,'(11x,i6)') yllcorner
! read(5,'(10x,i6)') cellsize
! read(5,'(10x,i6)') nodata
! write(6,*) ncols !写入输出文件
! write(6,*) nrows
! write(6,*) xllcorner
! write(6,*) yllcorner
! write(6,*) cellsize
! write(6,*) nodata
do i=1,6 !此do循环作用为将输入文件前六行连字符带数值全部写入输出文件,注意如果将'(A20)'换成*,则只输出字符,没有数值
read(5,'(A20)') str(i)
write(6,*) str(i)
end do
do j=1,5
read(5,*) (a(i,j),i=1,4)
write(6,*) (a(i,j),i=1,4)
end do
pause
end