Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用FORTRAN在同一行上书写_Fortran - Fatal编程技术网

用FORTRAN在同一行上书写

用FORTRAN在同一行上书写,fortran,Fortran,在Fortran语言中,每次使用WRITE都会产生一行新行。为了控制正在执行的程序的运行,我想在屏幕上写入变量的当前值,但总是在同一行上(擦除前一个值并从行的开头开始)。就是说, 1 CONTINUE "update the value of a" WRITE(*,*) a BACKSPACE "screen" GOTO 1 类似于WRITE(*,*,ADVANCE='NO')(无论如何都是不正确的)的内容与我的想法不太一样 需要:这将把

在Fortran语言中,每次使用
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是美元的“标准”替代品。此外,解决方案取决于您的终端类型,如果此答案不起作用,请返回并告诉我们您正在运行的终端,