|
有格式顺序读取,表控格式 read(??,*) 的读取单位是行。
内部实现是这样的:
读取一整行,分配到read后面的变量列表。
如果该行内数据超过变量列表,则多余的部分被丢弃。
如果该行内数据不足,则继续读取下一个整行,重复上述过程。直到总的变量数量达到变量列表的要求为止。
所以,每次read至少会读一行,你写成 3*4 的二重循环,要求文件中至少12行。
改成单层循环。
Do i = 1, NROW
Read(10, *) b(i, :)
End Do
甚至你可以不用循环
Read(10, *) b
就行了。但最好b定义为 b(NCOL,NROW)
[Fortran] 纯文本查看 复制代码 03 | Integer , Parameter :: NROW = 3 , NCOL = 4 |
04 | Integer :: b ( NROW , NCOL ) , i , j |
05 | Open ( 10 , File = "E:\xxxx.txt" ) |
|
|