如何用getchar读入并正确比较?

问题描述 投票:0回答:1

我是一个C语言初学者,不明白为什么我的代码下面的部分不能工作。

        char yn;
        printf("Play again(y/n)?\n");
        while(yn!='y' && yn!='n'){
            yn=getchar();
            printf("Input:%c\n",yn);
            if(yn!='y' && yn!='n') printf("Please put in y or n!\n");
        }

首先,它从一个缓冲区或其他地方随机读取数字,但即使我输入y或n,它也保持在循环中,即使它确认yn是y或n。

c string-comparison getchar
1个回答
0
投票

使用"..."。do while 循环它更方便。

    char yn;

    do{

        // Your play code goes here

        printf("Play again(y/n)?\n");
        printf("Input:%c\n",yn);
        yn=getchar();

        while(yn!='y' && yn!='n'){
           printf("Please put in y or n!\n");
           yn=getchar();
        }
    }while(yn=='y' || yn=='Y');     //Not need to check 'n'
© www.soinside.com 2019 - 2024. All rights reserved.