进击的小包子 发表于 2017-9-9 17:06:11

如何判断输入的字符串类型

本来是一个0-100猜字游戏里的函数不过有好多bug
就是我想输入0-100是正常,超过范围的数字说超范围
字符就说不是数字,然后就爆炸了。。。
1.字符型和较大的数字都不行
2.用else语句不能让1-100以外的情况都排除吗?
3.为什么会进入死循环不能再输入..


#include<iostream>
int main()
{
        int input = 0;
        for (;;)
        {
                std::cin >> input;
                if (input >= 0 && input <= 100)
            {
                std::cout<<"The number is available";
                return 0;
            }
                else if (input > 100 || input < 0)
                        std::cout << "The number is beyond the range!"<< std::endl;
                else
                        std::cout << "It isn't a valid number!" << std::endl;
        }
}

进击的小包子 发表于 2017-9-9 17:09:24

自顶啊自顶!

ba21 发表于 2017-9-9 17:38:47

进击的小包子 发表于 2017-9-9 17:09
自顶啊自顶!

#include<iostream>
int main()
{
      int input = 0;
                while (1)
                {
                        std::cin >> input;
                       if ( input== 0)
                       {
                                std::cout<<"请输入整数\n";                               
                       }

            else if (input<0 || input >100)
            {
                std::cout<<"输入不在有效范围内,请输入(0-100):\n";
                       
            }   
                        else
                        {
                                std::cout << input;
                                return 0;
                        }
                        std::cin.clear();
                        std::cin.ignore(100,'\n');

      }

                return 0;
}

进击的小包子 发表于 2017-9-9 20:08:05

ba21 发表于 2017-9-9 17:38


强无敌啊!
页: [1]
查看完整版本: 如何判断输入的字符串类型