我正在使用gfortran
在Cygwin中执行f90脚本,当我用./a
执行(运行)输出时,它会留下一个空格,要求输入而不打印提示(写入)命令。
program circle
real r, area
write (*,*) 'Give radius r:'
read (*,*) r
area = 3.14159*r*r
write (*,*) 'Area = ', area
stop
end
$ gfortran circle.f
$ ./a
1
Give radius r:
Area = 3.1415901
假设是
$ ./a
Give radius r:
1
Area = 3.1415901
这里发生了什么?请帮忙。
答案 0 :(得分:0)
如果您的编译器支持Fortran 2003,您可以使用flush
语句:
program circle
use, intrinsic :: iso_fortran_env, only: stdin=>input_unit, &
stdout=>output_unit, &
stderr=>error_unit
implicit none
real :: r, area
write (stdout,*) 'Give radius r:'
flush(stdout)
read (stdin,*) r
area = 3.14159*r*r
write (stdout,*) 'Area = ', area
end program