Marth 发表于 2017-12-4 23:52:51

求助

我要用c++写一个计算器(控制台应用程序)但我没办法识别输入是否为数字,我该怎么写来判断输入是否为非法字符呢?各位帮帮我{:10_266:}

Marth 发表于 2017-12-4 23:53:48

不能用,isalpha函数!数字大了就不行了

BngThea 发表于 2017-12-5 06:54:38

定义整形变量,用cin语句,判断流状态即可

闪电猫网络 发表于 2017-12-5 18:54:08

楼上判断流状态不是很清楚,
用char数组接收用户输入,用循环单字符判断是否为数字,有一个不为数字就返回false

Marth 发表于 2017-12-5 19:27:42

闪电猫网络 发表于 2017-12-5 18:54
楼上判断流状态不是很清楚,
用char数组接收用户输入,用循环单字符判断是否为数字,有一个不为数字就返回 ...

怎么用循环单字符判断是否为数字?我不会啊{:5_100:}

橙C 发表于 2017-12-5 19:40:54

#include <stdio.h>
#include <string.h>

bool IsNum(const char* pStrNum)
{
        if (NULL == pStrNum)
        {
                return false;
        }
       
        int nStrLen = strlen(pStrNum);
        if (0 == nStrLen)
        {
                return false;
        }
       
        char c;
        for (int i = 0; i < nStrLen; ++i)
        {
                c = pStrNum;
                if (c < '0' || c > '9')
                {
                        return false;
                }
        }
       
        return true;
}


int main()
{
        char szInput;
        scanf("%s", szInput);

        if ( IsNum(szInput) )
        {
                printf("Is Num\n");
        }
        else
        {
                printf("Is Not Num\n");
        }

        return 0;

}

Marth 发表于 2017-12-5 21:22:13

橙C 发表于 2017-12-5 19:40


谢谢!
页: [1]
查看完整版本: 求助