第二个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)
这是因为换行符.
当你先输入时'Y',你实际上输入了一个字符串"Y\n".
首先getchar()读取'Y',并'\n'坐在缓冲区中.所以第二个getchar()得到那个'\n'角色.