一个fortran程序

programmainimplicitnoneintegeriinteger,external::GetIntegeri=GeTINTEGER()write(*,*)is... program main
implicit none
integer i
integer,external::GetInteger
i= GeTINTEGER()
write(*,*) i
stop
end program
integer function getinteger()
implicit none
character(len=80)::string
logical::invalid
integer i,code
invalid=.true.
do while(invalid)
read(*,"(A80)") string
invalid= .false.
do i=1,len_trim(string)
code=ichar(string(i:i))
if(code<ichar('0').or.code>ichar('9'))then
invalid=.false.
exit
end if
end do
end do
read(string,*)getinteger
return
end function

如果输入存在0-9以外的字符会转回去让用户重新输入,直到输入的全是0-9的数字为止,但是当我用visual studio编译的时候,如果有0-9以外的字符,就会触发间断点,这是为什么?
展开
 我来答
天河流纹石
2012-11-24 · TA获得超过1.3万个赞
知道大有可为答主
回答量:7623
采纳率:76%
帮助的人:6625万
展开全部
if(code<ichar('0').or.code>ichar('9'))then
invalid=.false.
改为

if(code<ichar('0').or.code>ichar('9'))then
invalid=.true.
如果不在 0 - 9 范围内,应该是不可用的,需要再次循环。直到可用为止
yang6484541
2012-11-27 · TA获得超过666个赞
知道答主
回答量:364
采纳率:0%
帮助的人:60.1万
展开全部
度娘说 只要回答就有经验 所以 你懂的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式