Fortran Coder

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

[文件读写] 新手学习fortran,调试时read会莫名触发断点。

[复制链接]

44

帖子

4

主题

0

精华

熟手

F 币
179 元
贡献
90 点
楼主
发表于 2022-7-18 19:41:01 | 显示全部楼层
本帖最后由 zjk0112 于 2022-7-18 20:15 编辑

你那个read(100) 这里就有问题,应该是read(100,*) 100 表示通道号,*表示默认格式。默认read是按行顺序读取,read(100,*) m,n,nnz 表读取文件第一行的前三个值,这三个值分别按顺序存放在m,n,nnz中。如果你有100行就加一个do i=100的循环。        你试试open后面不用form那个参数。我一般就open(100,file='test.dat') 或者open(100,file='test.dat',status='old')

image-20220718193716736.png (40.24 KB, 下载次数: 183)

image-20220718193716736.png

44

帖子

4

主题

0

精华

熟手

F 币
179 元
贡献
90 点
沙发
发表于 2022-7-18 20:01:40 | 显示全部楼层
zjk0112 发表于 2022-7-18 19:41
你那个read(100) 这里就有问题,应该是read(100,*) 100 表示通道号,*表示默认格式。你试试open后面不用for ...

那个read(*,*)也是不对的用法。另外,楼主很不错,即主动有勤快,会主动注释排查错误,比很多往网上一挂等答案的强多了。至于不清楚问题的根源,还能把这么多信息和心路历程发出来,并且把错误排查在read的用法上,这里就很值得点赞。

44

帖子

4

主题

0

精华

熟手

F 币
179 元
贡献
90 点
板凳
发表于 2022-7-18 20:08:26 | 显示全部楼层
I和J乱码是因为没有初始化。就是要给出初值,否则它的是随机的。比如,在Fortran中声明   integer:: i.此时和MATlab的区别是i并不是0,你需要给 i 赋值  ,像这样i=0.
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

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

GMT+8, 2024-5-9 08:29

Powered by Tencent X3.4

© 2013-2024 Tencent

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