我只需要弄清楚如何給出錯誤是用戶輸入任何不是數字的東西。我已經設置了無法通過或不能通過的代碼的值。如何僅接受C中的數字並阻止用戶輸入字母和特殊字符?
我只需要只接受數字:如果輸入一個字母或任何類型的特殊字符我想程序只是取消自己。我怎樣才能做到這一點?
#include <stdio.h>
#include <math.h>
int main(void) {
float base, height;
float area;
printf("Please enter the value of base of the triangle: \n");
scanf ("%f", &base);
if(base<.5)
printf("Invalid Input\n");
while (base<.5)
return 0;
if(base>100)
printf("Invalid Input\n");
while(base>100)
return 0;
printf("Please enter the value of height of the triangle:\n");
scanf("%f", &height);
if(height<1)
printf("Invalid Input\n");
while(height<1)
return 0;
if(height>75)
printf("Invalid Input\n");
while (height>75)
return 0;
area = base * height/2;
printf("The area of the triangle for base: %f and height: %f is %f \n", base,
height , area);
return 0;
}
由於OP想要「給出錯誤是(如果)用戶輸入任何不是數字的」,這裏的弱點在這裏。這不會完全消耗「123abc」之類的非digt文本,但將「abc」保留在「stdin」中並且不會出現錯誤。建議'fgets()'然後'sscanf()/ strtof'。 – chux 2014-09-29 19:26:30