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
Cygwin gfortran先读后写命令_Cygwin_Fortran_Gfortran - Fatal编程技术网

Cygwin gfortran先读后写命令

Cygwin gfortran先读后写命令,cygwin,fortran,gfortran,Cygwin,Fortran,Gfortran,我正在使用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 应该是这样的 $ ./a Give radius r: 1

我正在使用
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

应该是这样的

$ ./a
 Give radius r:
1
 Area =    3.1415901

这里发生了什么?请帮忙

如果编译器支持Fortran 2003,则可以使用以下语句:

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

您需要提供您的Fortran代码,以便我们提供帮助。我的直接假设是,您必须在
写入
打印
之前阅读
。如果你想要更多的帮助,你必须实际做一些工作并发布你的代码。非常感谢。代码对我来说很好,在cygwin上使用gfortran4.8.2
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