ユーザーに番号を尋ねるプログラムをCで書いています。
数字はゼロより大きい必要があり、数字の前後に文字を含めることはできません。(つまり:400
は有効ですがabc
、または400abc
そうabc400
ではありません)。プログラムに 以外のすべてを無効にすることができます400abc
。入力が有効になってから無効になった場合、入力を無効にするにはどうすればよいですか? (私はCクラスの入門に約2か月なので、知識は非常に限られています。)
#include<stdio.h>
int check(void);
void clear_input(void);
main()
{
int num;
printf("Please enter a number: ");
num = check();
printf("In Main %d\n", num);
}
int check(void){
int c;
scanf("%d", &c);
while (c < 0){
clear_input();
printf("Invalid, please enter an integer: ");
scanf("%d", &c);
}
return c;
}
void clear_input(void){
char junk;
do{
scanf("%c", &junk);
}while (junk != '\n');
}