Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 如何防止代码只接受整数而接受小数_C - Fatal编程技术网

C 如何防止代码只接受整数而接受小数

C 如何防止代码只接受整数而接受小数,c,C,因此,我试图检查用户是否输入了十进制值,代码将打印出无效值并请求另一个值。有什么想法吗? 对于c代码来说真的很陌生,任何指南或提示都会被喜爱。 我猜这与“value”*2有关,如果值是偶数,则为真,否则为假。 如果我是对的或错的,请告诉我,问题是我不知道如何用代码来表达 do { printf("\nEnter value for 1st side of the Triangle: "); fflush(stdin); s

因此,我试图检查用户是否输入了十进制值,代码将打印出无效值并请求另一个值。有什么想法吗? 对于c代码来说真的很陌生,任何指南或提示都会被喜爱。 我猜这与“value”*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);
do
{
printf(“\n输入三角形第一边的值:”);
fflush(stdin);
scanf(“%d%*c”、&side1);
如果((1999侧))
{
printf(“无效值,重试输入\n”);
fflush(stdin);
}
如果((side1>=1)和&(side1<999))
{
printf(“输入三角形第二边的值:”);
fflush(stdin);
scanf(“%d%*c”、&side2);
}   
如果((边2<0)| |(边2>999))
{
printf(“无效值,重试输入\n”);
fflush(stdin);
}
如果((第2边>=1)和&(第2边<999))
{
printf(“输入三角形第三边的值:”);
fflush(stdin);
scanf(“%d%*c”、&side3);
}
如果((边3<0)| |(边3>999))
{
printf(“无效值,重试输入\n”);
fflush(stdin);
}
如果((第三方>=1)和&(第三方<999))
{ 
成功=1;
}   
}
而(成功==0);

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

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

欢迎使用SO!请浏览a并用a提问,您不应出于任何原因使用
fflush(stdin)
fflush
仅由标准定义用于输出流(例如,
stdout
)和未输入最新操作时的更新流。在输入流(例如,
stdin
)上使用它是未定义的行为,这意味着根据编译和运行代码的位置,可能会发生任何事情(或什么都不会发生)。欢迎使用SO!请浏览a并用a提问,您不应出于任何原因使用
fflush(stdin)
fflush
仅由标准定义用于输出流(例如,
stdout
)和未输入最新操作时的更新流。在输入流(例如,
stdin
)上使用它是未定义的行为,这意味着根据编译和运行代码的位置,可能会发生任何事情(或什么都不会发生)。