在用c++写程序时,需要用户输入数据,但程序怎么写才能保证用户只能输入数字,不能输入其他字符呢?

即,用户只能输入数据(实数或小数都行),输入其他字符如字母等时提示有误请从新输入。... 即,用户只能输入数据(实数或小数都行),输入其他字符如字母等时提示有误请从新输入。 展开
 我来答
chao1575639478
推荐于2018-04-13 · TA获得超过1391个赞
知道小有建树答主
回答量:353
采纳率:0%
帮助的人:219万
展开全部
c++中库函数<ctype>中,比如说输入char c 有函数isalpha(c)用来判断是否是字符,isdigit(c)用来判断是否是数字,而还有个函数是isalnum(c)用来判断是不是字符或数字,所以只要把isalnum(c)设置为真,并且isalpha()设置为假,就只能输入数据了,而不能输入字符等...具体循环自己写吧...
红军和法国
2012-04-23 · 超过59用户采纳过TA的回答
知道小有建树答主
回答量:164
采纳率:100%
帮助的人:150万
展开全部
不知道你的是控制台程序还是窗口应用程序,控制台的话你只能获取之后处理返回,判断是"0"-"9",窗口的话,就可以添加textbox的一个函数,当输入的不是数字可以返回原来的数字字符串,这样保证输入的只是数字
追问
但用户输入的是、可能是一位 ,两位或多位,或小数,这该怎么处理呢?他的位数不确定。
追答
窗口的话,添加了textbox的函数之后,每次都可以只获取一个字符进行判断,或者你把所有内容转成String先,然后for循环判断每一位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
willy123698741
2012-04-26 · TA获得超过259个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:215万
展开全部
先判断数据是不是只有数字、小数点、和正负号,如果有其他就提示格式错误
再看看小数点是不是在头尾,如果是就提示格式错误
最后判断正负号是不是只有一个并在开头,如果不是就提示格式错误
思路就是这样,但我不是学C++的,程序你自己写
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
哥特之泪
2012-04-23 · TA获得超过130个赞
知道答主
回答量:52
采纳率:0%
帮助的人:34.9万
展开全部
将用户输入按字符存储
判断字符asc码是否在数字的范围内
追问
但用户输入的是、可能是一位 ,两位或多位,或小数,这该怎么处理呢?他的位数不确定。
追答
你将输入存储进一个足够长的数组 视你限定用户的输入长度而定,然后做一个while判断数组的第i个元素是否为0(注意不是'0’而是0),意即判断是否为空,如果不为空接着将这个字符进行强制数据类型转换为int,之后判断这个整型值是否属于asc码的数字那部分,如果是就i+1,直到读到0,就是空字符,在空字符之前假如都是数字的话,那么这次输入有效,并且存储,如果无效就在让用户输入,或者退出程序。。。
不知道我说清楚了么
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
牧野XXX
2012-04-23 · TA获得超过339个赞
知道小有建树答主
回答量:825
采纳率:79%
帮助的人:305万
展开全部
拆解字符串,每一位对比ASCII。来确定是否在,(48<= a<=57)。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式