baidu_24230791
不求甚解的loser
2015-08-09 08:44
采纳率: 0%
浏览 3.6k

如何判断输入时是不是数字(输入是非数字或者输入为负数则跳出while循环)

C++中cctype头文件中的isdigit()函数如果参数是0~9,则函数返回true,这个函数只能判断是个数么?如果我要判断两位数、三位数......还能用么?
while(cin>>num) 其中num为整形变量,其中括号中的语句可以判断输入是不是数字?是怎么样的原理?
还有其他方法么?ASCII怎么用呢?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • devmiao
    devmiao 2015-08-09 08:45
     cin>>num肯定是数字
    while (cin>>num)
    {
        if (num < 0) break;
    }
    
    点赞 评论
  • oyljerry
    oyljerry 2015-08-09 08:58

    因为num类型定义了。cin输入的时候就会判断。它需要把你输入的转换为num,所以类型不对就会转换失败。

    点赞 评论
  • devmiao
    devmiao 2015-08-09 08:59
     内部原理
    while (c = getchar())
    {
        if (c >= '0' && c <= '9')
            {
                num *= 10;
                    num += (c - '0');
            }
            else
            {
            出错
            }
    }
    
    点赞 评论
  • AgoniAngel
    AgoniAngel 2015-08-09 11:16

    输入前定义了类型,如果输入的不是数字,程序会将字符处理成它的ASCII码

    点赞 评论
  • beacon_2011
    beaconD 2015-08-10 03:55

    用ASC码判断,不是就退出

    点赞 评论

相关推荐