我寫了這個簡短的代碼來測試我的isdigit
功能的認識:(您的輸入不是一個數)爲什麼Isdigit函數不能正常工作?
int inChar;
printf("enter input:");
scanf(" %d", &inChar);
if (isdigit(inChar))
printf("Your input was a number");
else
printf("Your input was not a number.\n");
當我測試這個程序,我輸入一個數字,C返回else語句。所以,無論我輸入一個數字還是一個字母,程序都會返回else語句。
這是爲什麼呢?
isdigit適用於char類型,而不是int。使用%c讀取 – stark
C庫函數void isdigit(int c)檢查傳遞的字符是否爲十進制數字字符。 –
@stark詳細信息:'isdigit(int)'接受一個'int'參數,並且在'[0 ... UCHAR_MAX]'和'EOF'範圍內工作。如果傳遞給'isdigit()'並且是負數(而不是'EOF'),則通過'「%c」'讀取的值爲UB。 – chux