如何在不中断程序的情况下读取Fortran中的输入?

时间:2010-09-20 18:54:03

标签: fortran fortran90

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将永远不会在屏幕上写下“输出”一词。

使用read语句我正在查找程序test2应该在屏幕上填充“Output”,直到按下不同于“2”的键。

1 个答案:

答案 0 :(得分:0)

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