10

在 Fortran 中,每次使用WRITE都会产生一个新行。为了控制正在执行的程序的工作,我想在屏幕上写一个变量的当前值,但总是在同一行(删除以前的值并从行首开始)。也就是说,像

 1    CONTINUE
      "update the value of a"
      WRITE(*,*) a
      BACKSPACE "screen"
      GOTO 1

WRITE(*,*,ADVANCE='NO')(无论如何都不正确)这样的东西并不是我所需要的:这会将所有值a一个接一个地写在很长的一行上。

4

1 回答 1

9

我为你想要的一个技巧如下

do l=1,lmax
   ...update a...
   write(*,'(1a1,<type>,$)') char(13), a
enddo

<type>您的格式说明符在哪里a(即i0整数)。

关键是char(13),它是回车符,以及$格式描述符中的 。我真的不知道 是否有名称$,我只知道它适用于在屏幕上显示 - 对于输出到文件,您a在每一行都得到一个。

于 2013-08-23T19:13:01.163 回答