| 我的以下代码的backspace语句用的好像有问题,但不知如何修改,使用前都可以正常读取数据,用了backspace就好像陷入无限循环。我的目的是想在文件里读取到符合条件的str1字符串后,再返回前面某一行,读取到与str1相关的的一行也就是str2字符串(前面有很多符合‘str2(1:1)==‘#’’的行,但是就只取离str1最近的前面某一行)。请大佬赐教!!! 
 [Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode 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
 |