老师换成了你说的
str=adjustl(str)
if(index(str,"NODE")==1)then
还是不对,结果是1,我要读的是以NODE开头那行下面有数字的4行,程序的正确结果应该是4才对。我的意思是从数字1那行开始计数,读一行加1,读到第四行就是4。
然后我又想了这个方法:[Fortran] 纯文本查看 复制代码 program test
implicit none
integer:: error,count=0
character,parameter::nodes="NODE"
character(len=512) str
open(12,file="NLIST.txt")
do
read(12,'(a512)',iostat=error)str
if(error/=0)exit
str=adjustl(str)
if(str(:len(nodes))==nodes)then
read(12,'(a512)',iostat=error)str
if(error/=0)exit
COUNT=COUNT+1
end if
end do
close(12)
write(*,*)count
end program
结果还是1,
综上,所以我觉得问题是定位到了以NODE开头哪一行后,程序接下来的命令是不是只读了一行?根本就没有读到以数字4开头哪一行.所以结果才是1的。是不是这个问题? |