Fortran Coder

查看: 11482|回复: 4
打印 上一主题 下一主题

[文件读写] 关于文件读写的问题

[复制链接]

13

帖子

6

主题

0

精华

熟手

F 币
114 元
贡献
81 点
跳转到指定楼层
楼主
发表于 2014-2-21 16:02:06 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
[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



分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

13

帖子

6

主题

0

精华

熟手

F 币
114 元
贡献
81 点
沙发
 楼主| 发表于 2014-2-22 17:28:09 | 显示全部楼层
感谢大家!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-22 01:34

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表