C言語におけるscanf入力不正文字のチェックと処理
750 ワード
Cでscanf()関数は、正常に読み込まれた変数の個数を返します.不正な文字、例えば数字を取得したいのにユーザーが文字を入力するなど、アイテムを読み込まなかった場合、scanf()は0を返します.「ファイル末尾」が検出すると、EOF(EOFはファイルstdio.hで定義された特殊な値である、一般的に、#defineコマンドはEOFの値を-1と定義する)を返す.
scanf()以上の性質を利用して、入力値を検査することができ、コードは以下の通りである.
scanf()以上の性質を利用して、入力値を検査することができ、コードは以下の通りである.
#include
int main(void)
{
int num;
int status;
printf("input the value of num:");
status = scanf("%d",&num);
if(status ==0)
{
printf("enter error");
fflush(stdin);//
}
else if(status == EOF)
{
printf("Input failure occurs!
");
}
else
printf("
num = %d
",num);
fflush(stdin);
getchar();
return 0;
}