Fortran Coder

查看: 461|回复: 1
打印 上一主题 下一主题

[求助] 新手读txt老报错,求助

[复制链接]

1

帖子

1

主题

0

精华

新人

F 币
9 元
贡献
3 点
跳转到指定楼层
楼主
发表于 2023-12-13 11:58:09 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
[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


5}M)`$ZKWE%DA@H70$~$1[3.png (32.73 KB, 下载次数: 32)

5}M)`$ZKWE%DA@H70$~$1[3.png

9NL`P{W`83U$U}F$T2_YFH6.png (18.05 KB, 下载次数: 31)

9NL`P{W`83U$U}F$T2_YFH6.png

66`FP0K40K5{HZ%${DL9{IL.png (18.85 KB, 下载次数: 31)

66`FP0K40K5{HZ%${DL9{IL.png
分享到:  微信微信
收藏收藏 点赞点赞 点踩点踩

1963

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1357 元
贡献
574 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 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
    Read(10, *) b(i, :)
  End Do
  Close(10)
End Program fcode_cn


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

本版积分规则

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

GMT+8, 2024-5-2 16:26

Powered by Tencent X3.4

© 2013-2024 Tencent

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