scanf控制字符宽度

img


程序如上↑
我的要求是c1得到a,c2得到c
弄了控制字符宽度,那不就是意味着读取的时候前两个字符的第一个会给c1,后两个字符的第一个会给c2
可是最终输出的时候c2是对的,c1不对,到底是为什么……

img

我的也是d,c

#include <stdio.h>
int main()
{
    char c1,c2;
    printf("请输入:");
    scanf("%2c%2c",&c1,&c2);
    printf("%c,%c\n",c1,c2);
    return 0;
}

img

应该编译器的问题,我用一样的程序得出结果如下所示:

#include <stdio.h>

int main()
{
    char c1=0,c2=0;
    printf("请输入:");
    scanf("%2c %2c",&c1,&c2);
    printf("%c,%c\n",c1,c2);

    return 0;
}

请输入:abcd
a,c