我有一个需要一个数字的读取语句,非常简单的示例代码:
program test
integer var
read(*,*) var
end
问题是我通常会因为分心而输入一串字符(即:是)。如何防止我的代码完全停止,而是显示您输入的值不正确类型的错误消息。再试一次?
我在想类似的事情:
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
var.not.a.number条件会是什么样子?我用gfortran
在Ubuntu下编译。
编辑:谢谢大家!我最终实现了 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
谁努力编写所有代码!