如何阻止我的代码接受小数,只接受整数

时间:2018-03-22 10:33:49

标签: c

所以我正在尝试检查用户是否输入了十进制值,代码会打印出无效值并要求另一个值。有任何想法吗? c-code真的很新,任何指南或提示都会被喜爱。 我猜它与“值”* 2有关,如果值为偶数,则为假,否则为假。 如果我是对或错请告诉我,问题是我不知道如何把它放在代码中

     do
        {
        printf("\nEnter value for 1st side of the Triangle: ");
        fflush(stdin);
        scanf("%d%*c", &side1);

        if((side1 <= 0) || (side1 > 999))
        {
            printf ("Invalid Value, Retry Input\n");
            fflush(stdin);
        }
        if ((side1 >= 1) && (side1 < 999))
        {
            printf("Enter value for 2nd side of the Triangle: ");
            fflush(stdin);
            scanf("%d%*c", &side2); 
        }   

        if ((side2 < 0) || (side2 > 999))
        {
            printf ("Invalid Value, Retry Input\n");
            fflush(stdin);
        }
        if ((side2 >= 1) && (side2 < 999))
        {
            printf("Enter value for 3rd side of the Triangle: ");
            fflush(stdin);
            scanf("%d%*c", &side3);
        }

        if ((side3 < 0) || (side3 > 999))
        {
            printf ("Invalid Value, Retry Input\n");
            fflush(stdin);
        }
        if ((side3 >= 1) && (side3 < 999))
        { 
            success = 1;
        }   
        }
        while(success == 0);

1 个答案:

答案 0 :(得分:2)

尝试读取字符串并使用strtol将其转换为整数。然后检查** endptr以查看它是否收到错误的值(浮动)。