为什么在请求下一个输入之前,if循环要迭代两次?

时间:2019-06-13 13:27:49

标签: c for-loop

我正在编写一个C程序,该程序每次都会生成一个随机字符,并将其与用户输入的字符进行比较。为用户提供了五种猜测答案的机会。

我还使用了ID Name Customers 1 Jon Smith 3 1 James Smith 3 2 David 7 3 Saul 2 3 Samuel 2 3 Paul 2 而不是scanf("%c",&ans),但它也没有用。

getchar

输出:

    srand(time(NULL));
    char randomChar=rand()%('z'-'a'+1)+'a';
    printf("%c",randomChar);
    for(i=1;i<=5;++i){
        printf("Enter your guess:\n");
        ans=getchar();
        if(ans==randomChar){
            printf("Whoa!!Your guess was correct\n");
            break;
        }
        else{
            p=p-1;
            printf("Wrong guess,you have %d more chances\n",p);
            continue;
        }
    }

1 个答案:

答案 0 :(得分:1)

替代

ans=getchar();

对于

scanf( " %c", &ans );

(请注意格式说明符%c前的空白。)

getchar还会读取空格(例如,按Enter后存储在缓冲区中的换行符)。