关于cin和scanf输入得数不一致的一个问题

定义int a,b
用scanf("%d%d",&a,&b)
输入 3a5
输出a,b
得到的是3 37****(一个奇怪的数字)
用cin>>a>>b
输入还是3a5
输出a b
得到的是3 0
这是为什么???

scanf("%d%d",&a,&b) 3a5

根据你的定义格式,a=3,然后去a,格式不对就舍弃了。。b就是未初始化的值。。

int a,b
cin >> a >> b;
printf("%d %d\n",a,b); 
 int a,b;
    scanf("%d%d",&a,&b);

    printf("%d %d\n",a,b);

为什么不会把"a"的ASCII码接受进b?

那C++里int b的默认值就是0了?