是否可以使用isdigit()函数测试浮点数?

时间:2013-02-03 06:33:56

标签: c

我需要询问用户的输入,并且他/她应该能够写一个浮点数,我需要对这两个数字进行一些计算,但我在{之后遇到问题' {1}}测试...即使我输入一个整数,它也会转到isdigit

这是我的代码:

continue;

为上传这些功能而道歉,但由于我是新手,问题可能就在那里。 欢呼声。

3 个答案:

答案 0 :(得分:7)

isDigit()只接受字符输入。 检查输入是否正确的最佳方法是使用

if(scanf("%f", &userNum) != 1) {
    // Handle item not float here
}

由于scanf()将返回正确扫描的项目数。

答案 1 :(得分:3)

IsDigit()仅当字符是十进制数字时才检查函数。

让我们说:

int isdigit ( int c );

检查c是否为十进制数字。

十进制数字可以是以下任何一个:0 1 2 3 4 5 6 7 8 9.

如果c是十进制数,则isdigit()函数将返回非零;否则,它将返回0。

答案 2 :(得分:1)

你也可以尝试这样的事情:

int get_float(char *val, float *F){
    char *eptr;
    float f;
    errno = 0;
    f = strtof(val, &eptr);
    if(eptr != val && errno != ERANGE){
        *F = f;
        return 1;
    }
    return 0;

如果val指向浮点数函数返回1&将此数字设为*F,否则返回0.