0

Fortran でファイルに行を追加したいとします。の最近のバージョン (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

どうしたの?これを実際のプログラムでどのように処理しますか?

4

1 に答える 1

0
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
于 2013-09-06T08:37:57.257 に答える