检查C中的输入是否正确

时间:2014-09-18 23:20:41

标签: c

这是我的计划。

reprocess:

    printf("Enter number: 1,2,3 ");

    if(scanf("%d%c", &preproc, &term)!= 2 || term!= '\n' ){
        printf("Invalid Input");
        goto reprocess;


    }else{

        if ((preproc==1) || (preproc==2) || (preproc==3)){
        printf("Correct Input\n");

        }else{
        printf("Invalid Input %d \n", preproc);
        goto reprocess;

        }
    }

为什么如果我输入一个字符串,它就不会停止循环?请指导我。

1 个答案:

答案 0 :(得分:1)

试试这个

if(scanf("%d%c", &preproc, &term)!= 2 || term!= '\n' ){
    printf("Invalid Input\n");
    scanf("%[^\n]");//this will skip the input when there is a non-numeric input.
    goto reprocess;
}else{