みなさん、アドバイスありがとうございます。残念ながら、私はそのような機能を使用することを許可されていません。だから私はこのコードを書きました。これは1つの問題でうまく機能します。私が入ると、「hhjk」と言いましょう。最初の 'h' が非数字として検出された後にバッファをクリアしたい.. 関数 fflush について聞いたが、理解できない..
int get_int()
{
char inp; /*inp, for input*/
int number; /*the same input but as integer*/
int flag=0; /*indicates if i need to ask for new input*/
do {
flag=0; /*indicates if i need to ask for new input*/
scanf("%c",&inp);
if (inp<48 || inp>57 ) /*this means it is not a number*/
{
inp=getchar(); /*Here i clear the buffer, the stdin for new input*/
printf("Try again...\n");
flag=1;
}
else
if (inp>53 && inp<58 && flag!=1) /*this means it is a number but not in the 0-5 range*/
{
inp=getchar(); /*here i clear the buffer, the stdin so i can get a new input*/
flag=1;
}
} while (flag);
number=inp-48; /*takes the ascii value of char and make it an integer*/
return number;
}