C言語におけるscanf入力不正文字のチェックと処理

750 ワード

Cでscanf()関数は、正常に読み込まれた変数の個数を返します.不正な文字、例えば数字を取得したいのにユーザーが文字を入力するなど、アイテムを読み込まなかった場合、scanf()は0を返します.「ファイル末尾」が検出すると、EOF(EOFはファイルstdio.hで定義された特殊な値である、一般的に、#defineコマンドはEOFの値を-1と定義する)を返す.
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; }