我正在用 C 语言编写一个程序,假设向用户询问一个数字。
数字必须大于零,并且数字前后不能有字母。(即:400
有效但abc
或400abc
不是abc400
)。我可以让我的程序使除400abc
. 如果输入开始有效然后变为无效,我将如何使其无效?(我大约 2 个月进入 c 类的介绍,所以我的知识非常有限。)
#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');
}