函数跳过scanfs

时间:2017-11-26 22:48:30

标签: c function scanf

我写了一个小程序来检查输入是否是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并打印两次“输入两个字“有人知道为什么吗?谢谢!

0 个答案:

没有答案