2016-11-11 92 views
-4

我已经iput两个双可变翻一番,我需要的,如果其中一个输入是字符串打印消息终止我尝试这样的事情坏输入到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,那么为什么该程序不打印错误的输入消息?

+0

您的问题是什么? – galfisher

+0

共轭,拼写错误,标点符号... 我知道一个整洁的表单并不是一个好问题,但它并不真正令人愉快...... –

+0

检查'scanf()'的返回值。期。 –

回答

4

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

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