当我尝试读取带有以下代码示例的txt文件时:
double precision inp(100)
open(1,file='whatever.txt')
do i=1,100
read(1,*) inp(i)
enddo
close(1)
该程序到达读取句子时才结束。我尝试了编写循环的其他方法,例如
do
read(1,*) inp
enddo
但是是一样的。有趣的部分是,如果我用Fortran或手工编写TXT,然后尝试阅读它,它可以工作!
我绝望,请帮助我。
这里有一些想法:
- 以10或更大的单位号为单位,1可能由默认I/O 之类的东西采取。
使用
iostat
和iomsg
找出读数为何失败:integer :: iostat character(len=100) :: iomsg read(unit=u, fmt=*, iostat=iostat, iomsg=iomsg) inp(i) if (iostat /= 0) then print *, "Error reading inp" print *, "i was ", i print *, "Error was: ", trim(iomsg) end if