双变量输入错误

时间:2016-11-11 06:47:07

标签: c

我在c中输入了两个双变量,如果其中一个输入是字符串终止并且打印消息,我需要尝试这样的事情

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,为什么此程序不打印错误的输入消息?

1 个答案:

答案 0 :(得分:4)

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

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