如何在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");
}