C

时间:2017-02-01 13:09:34

标签: c scanf

请考虑以下代码:

#include<stdio.h>

void main()
{
    int p = 0;
    char a = 0;
    while(p == 0)
    {
        p = scanf("%[abc]c",&a);
    }
    printf("%c",a);
}

我知道如果您输入除'a''b''c'以外的字符,则输入中获取字符的值不会设置到变量a中。

问题是指如果输入除指定字符之外的值,则上述循环永远不会终止。显然,在scanf中获取未指定的字符后,它将不会在以下循环迭代中获得任何字符。 这个问题的根源在哪里?

0 个答案:

没有答案