我的以下代码的backspace语句用的好像有问题,但不知如何修改,使用前都可以正常读取数据,用了backspace就好像陷入无限循环。我的目的是想在文件里读取到符合条件的str1字符串后,再返回前面某一行,读取到与str1相关的的一行也就是str2字符串(前面有很多符合‘str2(1:1)==‘#’’的行,但是就只取离str1最近的前面某一行)。请大佬赐教!!!
[Fortran] 纯文本查看 复制代码 program read_1line
implicit none
character(130)::str1
character(52)::str2
real,dimension(63):: cross
integer::rows
open(unit=12,file='cinder.dat',status='old')
do rows=1,162309
read(12,'(a130)') str1,str2
if(str1(1:8)==' #3215') then
write(*,*) str1
read(12,*)cross
write(*,*)cross
read(12,'(a130)') str2
do while(str2(1:1).ne.'#')
backspace(unit=12)
end do
write(*,*) str2
read(12,'(a130)') str1
end if
end do
close(12)
pause
end program read_1line
|