2010-09-20 37 views
0

Fortran中通常的read语句会中断程序的执行,直到按下RETURN键。我正在寻找一个读取任何按下的键而不等待RETURN键的语句。即使没有按键,程序也不应该停止。 谢谢你的回答。如何在不中断程序的情况下读取Fortran中的输入?

编辑: 下面是一些应该澄清问题的源代码。如果不按任何键

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”的键。

+2

你试图解决什么问题? – 2010-09-20 20:13:40

+0

我已更新我的问题。我希望现在更容易理解。 – 2010-09-20 21:22:07

+1

虽然我不能说它对于他想要解决什么问题要清楚得多,但我相信这个伪代码他正在寻找某种中断密钥。我不知道在Fortran中有任何问题,但也无法想象任何情况下我都会被卡住,因此我就手头的问题进行澄清,这对双方都是有利的。 – Rook 2010-09-20 21:24:04

回答

0

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

相关问题