用FORTRAN在同一行上书写
在Fortran语言中,每次使用用FORTRAN在同一行上书写,fortran,Fortran,在Fortran语言中,每次使用WRITE都会产生一行新行。为了控制正在执行的程序的运行,我想在屏幕上写入变量的当前值,但总是在同一行上(擦除前一个值并从行的开头开始)。就是说, 1 CONTINUE "update the value of a" WRITE(*,*) a BACKSPACE "screen" GOTO 1 类似于WRITE(*,*,ADVANCE='NO')(无论如何都是不正确的)的内容与我的想法不太一样 需要:这将把
WRITE
都会产生一行新行。为了控制正在执行的程序的运行,我想在屏幕上写入变量的当前值,但总是在同一行上(擦除前一个值并从行的开头开始)。就是说,
1 CONTINUE
"update the value of a"
WRITE(*,*) a
BACKSPACE "screen"
GOTO 1
类似于WRITE(*,*,ADVANCE='NO')
(无论如何都是不正确的)的内容与我的想法不太一样
需要:这将把a
的所有值一个接一个地写在一个很长的表上
行。为满足您的需要,我展示了一个技巧,如下所示
do l=1,lmax
...update a...
write(*,'(1a1,<type>,$)') char(13), a
enddo
do l=1,lmax
…更新一个。。。
写(*,‘(1a1,,$)’)字符(13),a
结束循环
其中,
是a
的格式说明符(即,i0
表示整数)
键是
char(13)
,它是回车符,以及格式描述符中的$
。我真的不知道$
是否有一个名称,我只知道它可以在屏幕上显示——对于文件的输出,每一行都有一个a
。非常确定BACKSPACE
并不像你想象的那样。注意,$描述符不是标准语言。我假设它不是标准语言,但它在ifort 11+和gfortran 4.6&4.7中对我有效。advance=no是美元的“标准”替代品。此外,解决方案取决于您的终端类型,如果此答案不起作用,请返回并告诉我们您正在运行的终端,