2010-09-20 79 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.即使沒有按下任何按鍵,它也不會回答有關程序繼續的部分 - 因爲您必須添加某種超時,給這個人打字機會的機會,但是如果他們沒有按截止日期輸入,則超時並繼續。也許你可以修改我鏈接到的解決方案...

相關問題