而在调试过程中,每次运行都要重复输入参数,有可能还非常多。稍不注意就会输入错误。
在某些时候,我们也可能会暂时取消屏幕输入,而改成固定值。但这样又不方便。
本代码可以在上述两个选择上折衷。即可以正常输入,又可以直接回车,按照默认值对待。
如下运行效果,蓝色是输入部分:
请输入一个浮点数(直接回车则为3.0)
3.00000000
请输入一个浮点数(直接回车则为3.0)
3.00000000
请输入一个浮点数(直接回车则为3.0)2.5
2.50000000
请输入一个浮点数(直接回车则为3.0)1.4
1.39999998
请输入一个浮点数(直接回车则为3.0)100
100.000000
请输入一个浮点数(直接回车则为3.0)
代码如下(此代码以浮点数为例,其他数据类型,如整型,字符型,请自行修改设计):
Program www_fcode_cn
implicit none
Real :: a
Do
a = GetInputReal( "请输入一个浮点数(直接回车则为3.0)" , 3.0 )
write(*,*) a
End Do
contains
Real Function GetInputReal( cStr , rDef ) Result ( rOut )
Character( Len = * ) , Intent( IN ):: cStr
Real , Intent( IN ) :: rDef
real :: rR
integer :: iErr
character( Len = 30 ) :: cRead
rOut = rDef
Write( * , '(a)' , advance = 'no' ) cStr
Read( * , '(a30)' ) cRead
if ( Len_Trim( cRead ) <= 0 ) return
Read( cRead , * , iostat = iErr ) rR
if ( iErr == 0 ) rOut = rR
End Function GetInputReal
End Program www_fcode_cn



