而在调试过程中,每次运行都要重复输入参数,有可能还非常多。稍不注意就会输入错误。
在某些时候,我们也可能会暂时取消屏幕输入,而改成固定值。但这样又不方便。
本代码可以在上述两个选择上折衷。即可以正常输入,又可以直接回车,按照默认值对待。
如下运行效果,蓝色是输入部分:
请输入一个浮点数(直接回车则为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