簡體   English   中英

gfortran中的`backspace`(舊的和新的)

[英]`backspace` in gfortran (old and new)

假設我要在Fortran文件中添加一行。 使用gfortran的最新版本(4.7),我發現這gfortran

program test
  integer :: lun=10, i=0

  open(FILE='test.dat', UNIT=lun)

  do
     read(lun, *, END=20) i
     print *, i
  end do
20 backspace(lun)

  write(lun, *), i+1
end program test

但是,在gfortran 4.4中,它將覆蓋最后一行。 追加 ,我發現我需要使用

20 continue

而不是backspace

這是怎么回事? 您將如何在實際程序中處理此問題?

program test
  integer :: lun=10, i=0,io

  open(FILE='test.dat', UNIT=lun, POSITION="append")

  backspace(lun,iostat=io)

  if (io==0) then
    read(lun,*) i
  else
    i = 0
  end if

  write(lun, *) i+1

end program test

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM