我想寫一個簡單的程序來計算一個函數與Fortran95/03需要作爲輸入一個數字(x)和獲取作爲輸出數字(y)。 用戶輸入是real :: input
和讀取調用看起來像如何檢查用戶輸入是否適合變量?
read (*,*, iostat=stat) input
if(stat > 0) then
print *, "False input, use numbers!"
的iostat的幫我檢查,如果輸入的是一個數字或字母。
我的問題是,如果我輸入一個非常大的數字,如1000000000000,該程序崩潰與錯誤消息「bufferoverflow」。我知道我可以使真正的大於4字節的變量,但我也可以使輸入數字更大,所以這並不能解決問題。
主要問題是,是否有可能通過用戶輸入來防止程序崩潰?
你是說即使'iostat ='給出程序也會終止嗎?雖然接下來的問題不是對這個問題的回答,但是你不能僅僅以「1.5e903」的形式給出輸入,而不是讓人難以置信的長'15000000000000000000000 ... 0'? – francescalus