我的程序需要用户对某些变量进行标准输入。默认值用于用户只需按下标准输入中的输入
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决定的。 –