有格式顺序读取,表控格式 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-11-23 06:34