我想写一个简单的程序来计算一个函数与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