我在c中输入了两个double变量,我需要是否输入之一是字符串终止并显示打印消息,请尝试这样的操作

double a, b;
printf("Input two variables:\n");
scanf("%lf %lf", &a, &b);
printf("%lf\n", a);
printf("%lf\n", b);
if(( a <= 0.0 ) || (b <= 0.0))
{
  printf("Bad input\n");
  return 2;
}


如果我尝试输入4 fff(或fff 5),则程序不会输出错误的输入消息。
如果设置a = 444 b = fff或a = ddd b = 78,为什么该程序不能打印错误的输入消息?

最佳答案

在验证输入是否有效之前,请尝试使用a。这可能导致意外行为。您需要验证您的输入,例如:

if (scanf("%lf %lf", &a, &b) != 2) {
    // handle bad input
}

关于c - 输入错误到双变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40542556/

10-11 22:08
查看更多