首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

程序跑飞了,高手

2012-02-12 
程序跑飞了,高手求救做了一个命令测试程序,当输入你个非16进制的数时,程序就飞了,高手指教程序如下:intmai

程序跑飞了,高手求救
做了一个命令测试程序,当输入你个非16进制的数时,程序就飞了,高手指教

程序如下:

int   main()
{
    int   i;
    unsigned   int   ch;
    while(1)
    {

        printf( "\ninput   the   command   code(FF   is   eixt): ");
          scanf( "%x ",&ch);
          printf( "%x ",ch);
          switch(ch)
        {
        case   0x00:
                Test_00H();break;
        case   0x10:
                Test_10H();break;
        case   0x20:
                Test_20H();break;
        case   0x22:
                Test_22H();break;
        case   0x30:
                Test_30H();break;
        case   0x32:
                Test_32H();break;
        case   0x3C:
                Test_3CH();break;
        case   0x40:
                Test_40H();break;
        case   0x70:
                Test_70H();break;
        case   0xFF:
                exit(0);break;
        default:
          printf( "input   Error!\n ");
        }

    }
    getch();
        return   0;
}
输入以16进制数正常,但输入非16进制的其他意外字符和符号时,程序就飞了
   


[解决办法]
估计是这一句 scanf( "%x ",&ch); 有问题。
由于有非法数据输入,缓冲区有残余信息。
用fflush(stdin);清除一下。

热点排行