Fortran Coder

查看: 18897|回复: 10
打印 上一主题 下一主题

[文件读写] Fortran直接文本文件读写问题

[复制链接]

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
楼主
发表于 2017-11-18 11:39:46 | 显示全部楼层
第一个问题,带换行符的输出就可以了。
write(13,"(10(10es13.6,/))") a(1:100)

第二个问题,写入rec=1这一条记录。
题外话:尽量不要用“有格式直接读写”

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
沙发
发表于 2017-11-18 14:15:14 | 显示全部楼层
本帖最后由 vvt 于 2017-11-18 14:37 编辑

试试这样
[Fortran] 纯文本查看 复制代码
Program Main
  Integer :: a(100)
  Character(len=2) , parameter :: CRLF = char(13)//char(10)
  Character(len=420) :: c
  integer :: i , j
  open(13,File="test.txt",access="direct",form="formatted",recl=420)
  Do i = 1 , 4
    do j = 1 , 100
      a(j) = i*100 + j
    end do
    WRITE(c,120) (a(j:j+9),CRLF,j=1,100,10)
    write(13,"(a)",REC=i) c
  ENd Do
  Close(13)
120 FORMAT(10(10i4,a))
End Program Main


954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
板凳
发表于 2017-11-19 19:50:41 | 显示全部楼层
CRLF的意思是“换行符”,你可以百度了解 CRLF
我给你的多好的代码,干嘛自己擅自修改?还改得那么丑不拉几的。

重点:
Character(len=420) :: c
不能改为
CHARACTER C(420)

此外:
出错要给错误提示
请放弃固定格式

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
地板
发表于 2017-11-19 20:44:03 | 显示全部楼层
Character(len=420) :: c
就这样定义,无需修改。

954

帖子

0

主题

0

精华

大师

F 币
184 元
贡献
75 点

规矩勋章元老勋章新人勋章水王勋章热心勋章

QQ
5#
发表于 2017-11-19 22:27:55 | 显示全部楼层
对的                           
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-3 00:10

Powered by Tencent X3.4

© 2013-2024 Tencent

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