我写了一个小程序来检查输入是否是a-z和A-Z之间的字符, 我想练习函数,所以我创建了一个名为int check的函数;应该返回while循环的值(如果输入错误,则假设要求再次请求另一个输入)
#include <stdio.h>
int check(char a, char b);
int main()
{
char a, b;
int flag = 1;
printf("enter two characters\n");
scanf("%c%c", &a, &b);
flag = check(a, b);
if (flag != 0)
{
while (flag)
{
printf("enter two characters\n");
scanf("%c%c", &a, &b);
flag = check(a, b);
}
}
printf("worked");
}
int check(char a, char b)
{
int counter=0;
if ((a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z')) counter++;
if ((b >= 'a' && b <= 'z') || (b >= 'A' && b <= 'Z')) counter++;
if (counter == 2) return 0;
else return 1;
}
现在当我运行它工作正常,但由于某种原因,当我第一次输入错误的数字两次它要求我“输入两个字符”时,第二次它只是跳过scanf并打印两次“输入两个字“有人知道为什么吗?谢谢!