私は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はintではなくchar型で動作します。%cで読み取る – stark
Cライブラリ関数void isdigit(int c)は、渡された文字が小数点文字かどうかを調べます。 –
@stark詳細: 'isdigit(int)'は 'int'引数を受け取り、' [0 ... UCHAR_MAX] 'と' EOF'の範囲で動作します。 ''%c "'で読み込まれた値は 'isdigit()'に渡され、負である( 'EOF'ではなく)場合はUBです。 – chux