Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.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中显示消息或响应无效输入 #包括 #包括 #包括 int main() { int a,结果; 浮球b; printf(“**这是一个简单的算术计算器。**\n”); printf(“\n请输入一个整数:”); scanf(“%i”,a); printf(“请输入浮点数:”); scanf(“%f”,b); 结果=a+b printf(“输出:”); printf(“%i+%f=%lf\n”,a,b,result); printf(“%i-%f=%lf\n”,a,b,result); printf(“%i*%f=%lf\n”,a,b,result); }_C - Fatal编程技术网

如何在C中显示消息或响应无效输入 #包括 #包括 #包括 int main() { int a,结果; 浮球b; printf(“**这是一个简单的算术计算器。**\n”); printf(“\n请输入一个整数:”); scanf(“%i”,a); printf(“请输入浮点数:”); scanf(“%f”,b); 结果=a+b printf(“输出:”); printf(“%i+%f=%lf\n”,a,b,result); printf(“%i-%f=%lf\n”,a,b,result); printf(“%i*%f=%lf\n”,a,b,result); }

如何在C中显示消息或响应无效输入 #包括 #包括 #包括 int main() { int a,结果; 浮球b; printf(“**这是一个简单的算术计算器。**\n”); printf(“\n请输入一个整数:”); scanf(“%i”,a); printf(“请输入浮点数:”); scanf(“%f”,b); 结果=a+b printf(“输出:”); printf(“%i+%f=%lf\n”,a,b,result); printf(“%i-%f=%lf\n”,a,b,result); printf(“%i*%f=%lf\n”,a,b,result); },c,C,我需要确保如果用户输入无效输入,您的程序不会崩溃。scanf是一个函数,它还具有一个返回值,指示正确插入了多少输入。 所以你可以做一些类似的事情: #include <stdio.h> #include <math.h> #include <stdlib.h> int main() { int a, result; float b; printf("**This is a simple arithmetic calculator.**

我需要确保如果用户输入无效输入,您的程序不会崩溃。

scanf
是一个函数,它还具有一个返回值,指示正确插入了多少输入。 所以你可以做一些类似的事情:

#include <stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    int a, result;
    float b;
    printf("**This is a simple arithmetic calculator.** \n");
    printf("\n Please enter an integer: ");
    scanf("%i ", a);
    printf("Please enter a floating point number: ");
    scanf("%f", b);

    result = a + b

    printf("Output: ");
    printf("%i + %f = %lf \n", a, b, result);
    printf("%i - %f = %lf \n", a, b, result);
    printf("%i * %f = %lf \n", a, b, result);
}

使用while循环或if进行scanf

while (scanf("%i ", a) != 1)
{
   printf("wrong input, try again");
}


您建议如何计算
结果
?自动?:)返回值是多少?您的程序有bug/错误/打字错误,其中一个是scanf(“%i”,a);回答得好。作为旁注,我要补充一点:问题的标题明确要求使用标准C模式来通知错误条件。所以您应该打印到stderr:
fprintf(stderr,“输入错误,请重试\n”)
while(scanf("%i ", a) !=1){
    printf("invalid input.\n");
}
while(scanf("%f", b) !=1){
    printf("invalid input.\n");
}