0

Fortran 中的一条常用read语句会中断程序的执行,直到按下 RETURN 键。我正在寻找一个无需等待 RETURN 键即可读取任何按下的键的语句。即使没有按下任何键,程序也不应该停止。谢谢您的回答。

编辑:这是一些应该澄清问题的源代码。

Program test1
  n=2
  do while (n==2)
    read (*,*) n
    write (*,*) 'Output'
  end do
end program test1

Program test2
  n=2
  do while (n==2)
    UnknownReadStatement (*,*) n
    write (*,*) 'Output'
  end do
end program test2

test1如果未按下任何键,程序将永远不会在屏幕上写入“输出”一词。

使用我正在寻找的程序的读取语句test2应该用“输出”填充屏幕,直到按下不同于“2”的键。

4

1 回答 1

0

在http://home.comcast.net/~urbanjost/CLONE/GETKEY/getkey.html有一个示例代码用于从 Fortran 终端读取单个键,而无需通过返回键终止输入。我没有尝试过这段代码,所以不能保证。他的 (John Ubran) 解决方案使用 C getkey 混合了 Fortran 和 C。假设您的编译器支持它(大多数都支持),我建议尝试使用 ISO_C_BINDING 方法来组合 Fortran 和 C。即使没有按下任何键,这也不能回答有关程序进行的部分——因为您必须添加某种超时,让人们有机会输入一些东西,但如果他们没有在截止日期前输入,则超时并继续。也许您可以修改我链接到的解决方案...

于 2010-09-21T00:35:45.253 回答