当需要用户输入整数时,可以调用此函数
Status inputCheck(int *val) //检查输入
{
char n[50] = { 0 };
int i = 0, flag = 0, minus = 0;
// 用户开始输入
scanf("%s", n);
getchar();
for (int j = 0; n[j] != '\0'; j++)
{
// 检测是否正确输入符号位
if (j == 0 && (n[j] == '-' || n[j] == '+'))
{
continue;
}
if (n[j] < '0' || n[j] > '9')
flag = 1;
}
if (flag == 1)
{
// flag==1 则说明用户的输入发生了错误
return ERROR;
}
int temp = 0, simple = 1;
for (int j = 0; n[j] != '\0'; j++)
{
if (n[j] == '-')
{
// simple用于检测用户是否输入了负数
simple = -1;
continue;
}
else if (n[j] == '+')
{
continue;
}
temp = temp * 10 + (n[j] - 48);
}
*val = temp * simple;
return OK;
}
可以更好地规范用户的输入!!
使用范例:
int main()
{
// 进行初始化
int n = 0;
printf("请输入您想执行的操作:");
while(inputCheck(&n) == ERROR)
{
printf("输入错误!请重新输入:");
}
}