Fortran Coder

新手读txt老报错,求助

查看数: 487 | 评论数: 1 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
zmc
发布时间: 2023-12-13 11:58

正文摘要:

[Fortran] 纯文本查看 复制代码Program fcode_cn   Implicit None   Integer, Parameter :: NROW = 3, NCOL = 4   Integer :: b(NROW, NCOL), i, j   Open(10, File="E:\xx ...

回复

fcode 发表于 2023-12-13 20:38:45
有格式顺序读取,表控格式 read(??,*) 的读取单位是行。
内部实现是这样的:

读取一整行,分配到read后面的变量列表。
如果该行内数据超过变量列表,则多余的部分被丢弃。
如果该行内数据不足,则继续读取下一个整行,重复上述过程。直到总的变量数量达到变量列表的要求为止。

所以,每次read至少会读一行,你写成 3*4 的二重循环,要求文件中至少12行。
改成单层循环。
Do i = 1, NROW
    Read(10, *) b(i, :)
  End Do

甚至你可以不用循环
Read(10, *) b
就行了。但最好b定义为  b(NCOL,NROW)

[Fortran] 纯文本查看 复制代码
Program fcode_cn
  Implicit None
  Integer, Parameter :: NROW = 3, NCOL = 4
  Integer :: b(NROW, NCOL), i, j
  Open(10, File="E:\xxxx.txt")
  Do i = 1, NROW
     Do j = 1, NCOL
        Read(10, *) b(i, j)
     End Do
  End Do
  Close(10)
End Program fcode_cn


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

GMT+8, 2024-5-17 14:09

Powered by Tencent X3.4

© 2013-2024 Tencent

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