我已經把錯誤檢查在輸入作出:檢查輸入型再現聲明
integer :: lsp
chksp:do
write(*,*) "#Enter Number"
read(*,*,iostat=istat)lsp
if (istat==0) then
exit chksp
else
write(*,*)"Number can only be integer. Re-enter!"
end if
end do chksp
的問題是,它可以檢測錯誤,如果在enteres一個字符值,而不是一個數值, ;但如果輸入實際值而不是整數,則無法檢測到錯誤。
有什麼辦法強制它只檢測整數?
注意:可能是ifort的問題; gfortran對代碼感到滿意。
它適用於我並打印「數字只能是整數。重新輸入!」當我輸入浮點值。 –
好的,不適用於ifort。 –
問題在於程序員的期望,而不是ifort。 ifort接受的輸入不是標準所說的那樣,這非常好。它將允許任何數字輸入的數字列表項。不要使用列表導向的輸入進行驗證 - 實現可能比您想要的更加自由。 –