使用“ isdigit”功能时遇到麻烦

时间:2019-07-15 23:00:47

标签: visual-c++

我正在编写一个程序,要求用户输入整数,如果未输入整数,则必须重新输入其值。

我遇到的问题是,当我尝试使用“ isdigit”工具时,程序会识别出输入了非整数,但随后无限地重复该错误。

我尝试同时使用isalpha和isdigit。

    while(true)
    {
        cout << "Enter a decimal value, or press 0 to exit: " << endl;
        cin >> decimal;
        oct = decimal;
        hexadecimal = decimal;

        if(decimal < 0)
        {
            cerr << "***ERROR*** Value entered < 0" << endl;
        }
        else if(!isdigit(decimal))
        {
            cerr << "***ERROR*** Value entered must be an integer" << endl;
        }
        else if(decimal == 0)
        {
            cout << "***EXITING***" << endl;
            system("pause");
            exit(1);
        }
        else
        {
            break;
        }
    }

如果我输入“ a”,它将无限重复。

错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出: 错误 输入的值必须是整数 输入一个十进制值,或按0退出:

0 个答案:

没有答案