getchar没有等待用户输入

Aru*_*run 1 c getchar

第二个getchar函数不等待用户输入.无法弄清楚以下代码中缺少的内容

char ch = 'n';
bool status = false;

printf("%s", "Some text1\n");
ch = getchar();

if ((ch == 'Y') || (ch == 'y'))
{
    status = true;
}

if(status)
{
    printf("%s", "Some text2\n");
    ch = getchar();

    if ((ch == 'Y') || (ch == 'y'))
    {
        status = eNoError;
    }
}
Run Code Online (Sandbox Code Playgroud)

WGH*_*WGH 5

这是因为换行符.

当你先输入时'Y',你实际上输入了一个字符串"Y\n".

首先getchar()读取'Y',并'\n'坐在缓冲区中.所以第二个getchar()得到那个'\n'角色.