我的程序需要用戶對某些變量進行標準輸入。默認值用於用戶只需按下標準輸入中的輸入
subroutine stdInp(maxStep,gam,tolL)
integer,intent(inout) :: maxStep
real(dp),intent(inout) :: gam
real(dp),intent(inout) :: tolL
character :: tmpI
write(*,*) "Max number of iterations?: "
read(*,*) maxStep
if (maxStep .le. 0) then
write(*,*) "Invalid number of iterations!"
stop
end if
(...)
當程序用戶需要輸入數值時,只需按下ENTER鍵,我想使用默認值。
我發現了類似的搜索問題,但它們不適用於Fortran。
如何讓Fortran代碼對ENTER做出反應?
好主意,雖然我會檢查一個空字符串採取默認值。錯字的號碼不應該導致默認值。你也可以把它放在一個循環中來重新提示另一個條目從錯誤中恢復。 – Jack
嗯,當然,但這是在OP上,而不是在我設置確切的條件。如果您查看原始代碼,他會檢查負數並停止。他也可以在那裏留下這張支票。基本上,這不是一個代碼編寫服務,所以解決方案通常不會完成最終的工作代碼。 –
我其實本來想檢查*只*爲空字符串。但是這會導致無效數字未被選中。他們是否應該離開崩潰或默認,這是由OP決定的。 –