我有一个读取语句需要一个数字,非常简单的示例代码:
program test
integer var
read(*,*) var
end
问题是我通常输入一串字符(即:yes)因为分心。如何防止我的代码完全停止并显示以下类型的错误消息您输入了错误的值。再试一次?
我在想这样的事情:
program test
integer var
10 read(*,*) var
if (var.not.a.number) then
write(*,*)'You've entered an incorrect value. Try again'
goto 10
endif
end
那会是什么变量非数字状况是什么样的?
我用gfortran
在Ubuntu下编译。
Edit: 谢谢你们!我最终实现了 HPM 的第三个选项,因为它是最简单的一个:
program test
integer var,iostat,ios
10 read(*,*,iostat=ios) var
if (ios.ne.0) then
write(*,*)'You've entered an incorrect value. Try again'
goto 10
endif
end
特别感谢User7391
谁花力气写了所有这些代码!