dhy328 2015-11-27 02:09 采纳率: 0%
浏览 2926

c语言中scanf()读取值的问题

 int get_int(void)
{
    int input;
    char ch;
    while (scanf("%d", &input) != 1)
    {
        while ((ch=getchar()) != '\n')
            putchar(ch);
        printf("is not an interger.\nPlease enter an");
        printf("interger value,such as 25,-178 or3:");

    }
    return input;
}

图片说明
输入里面的a为什么在scanf获取值进入while判断,满足进入循环的条件后,还在缓冲区中,可以继续被getchar()获取 ?按说不是应该被取过的值就不在缓冲区了吗?

  • 写回答

4条回答

  • 关注

    我猜测是scanf发现类型不对就没有去把它取出来

    评论

报告相同问题?