0
在下面的例子中,我希望能夠接受0作爲分子,但不是分母。我也希望排除非數字字符的輸入。我覺得我錯過了很簡單的東西,或者不太明白如何使用sscanf。我將如何使用sscanf接受零作爲輸入,但不是非數字輸入?
#include <stdio.h>
int main(int argc, char *argv[]) {
double numerator = 0.0;
double denominator = 0.0;
double result = 0.0;
if (argc == 3.0) {
sscanf(argv[1],"%lf", &numerator);
sscanf(argv[2],"%lf", &denominator);
result = numerator/denominator;
if (denominator == 0){
printf("invalid input - divide by zero not allowed\n");
}
else if (numerator == 0){
printf("invalid input\n");
}
else printf("%lf\n", result);
}
return 0;
}
在執行操作之前,您應該確實檢查有效值*。 –
您可能還有興趣查看[這個'scanf'(和家庭)參考](http://en.cppreference.com/w/cpp/io/c/fscanf)。密切關注函數*返回的內容*。 –