2016-11-11 95 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 
}