Clion输出问题,请教各位

问题遇到的现象和发生背景

有没有人告诉我这是为何?
理论上来说应该是x1=98,x2=765,y1=4,y2=1
但是在Clion上x2输出12851,我试过另外一台电脑,用的Visual C++6.0,是理论值。但这台电脑不是,是哪里的配置有问题吗

用代码块功能插入代码,请勿粘贴截图
#include 
void main() {
    int x1,x2;
    char y1,y2;
    scanf("%2d%3d%3c%c",&x1,&x2,&y1,&y2);
    printf("x1=%d,x2=%d,y1=%c,y2=%c\n",x1,x2,y1,y2);
}


运行结果及报错内容

9876543210
x1=98,x2=12851,y1=4,y2=1

问题出在%3c身上。因为%c每次只会读入一个字符,%3c尽管圈定了3个字符,但是只会读入一个。对于剩下的字符不同编译器的处理会有差异。有的会丢弃掉,有的会依然放在缓冲区。大部分编译器对于未读入的数据都会放在缓冲区,因此读入y1后,缓冲区剩下的数据影响了前一个值。

总之读入数据时不要用%nc,会带来不可预知的结果。