如下程序代码,在Turbo C2.0下编译运行正常,
但是在VC6.0下,程序可以编译,但是运行中就总是停留在输入状态...
将 char 型改为 int 型后就可以了,请教大侠这是为何?#include <stdio.h>
void main(void)
{
unsigned char i,a[2]={0};
for(i=0;i<2;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<2;i++)
{
printf("%d\n",a[i]);
}
}

解决方案 »

  1.   

    我在VS2005里运行正常
    把%d改成%c
    #include <stdio.h>
    void main(void)
    {
    unsigned char i,a[2]={0};
    for(i=0;i<2;i++)
    {
    scanf("%c",&a[i]);
    }
    for(i=0;i<2;i++)
    {
    printf("%c\n",a[i]);
    }
    }
      

  2.   

    %d  对 &a[i]  来说太大了.VC下数据转换应该都是没问题的..C\C++的风格当然不能丢掉.
      

  3.   

    TC 2.0?那里找出来的古董?好像那里面int是两个字节的。
      

  4.   

    把%d改成%c
    int 表示整数   32位
    char 表示字符   8位
    两者不能用混.
      

  5.   

    zerotodream 和 LY_ZCM 的回复是可行解,非常感谢!
    已经给分,但不知为什么刷新后为什么得分没变...