C语言 想输入字母a也能判断,但是现在会出错


int a;
    float b;
    printf("Enter the unit of Weight([1]-lbs, [2]-kg):");
    scanf("%d",&a);


    while(a!=1 && a!=2)
    {
        printf("Invalid Number!\n");
        printf("Enter the unit of Weight([1]-lbs, [2]-kg):");
        scanf("%d",&a);
    }

这个是部分代码,我在输入a是输入字母就会一直运行
我想表达的是如果a不是1或2 全部报“Invalid Number!”,然后继续循环

a是int型,输入字母会得到一个错误的值,当然也不是1或2