这是一个问题C.程序控制流程不符合预期.它要求输入字符,但没有要求输入字符x.
int foo();
int main(int argc, const char * argv[]) {
foo();
return 0;
}
int foo(){
char in;
char x;
printf("Do you wanna party \n");
if((in = getchar()) == 'y')
printf("Go Sleep!, I was kidding\n");
else
printf("Oh! you are so boaring..\n");
printf("\nOk, Another Question\n");
printf("Wanna Go to Sleep\n");
if((x = getchar()) == 'y')
printf("ok lets go, Sleepy Head\n");
else
printf("No, lets go\n");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
为了澄清上面提到的评论,在给出输入的过程中,你按下Y然后按ENTER.因此,它y被认为是第一个输入getchar(),ENTER按键[ \n]存储在输入缓冲区中.
在对next的调用中getchar(),\n读取被认为是完全有效的输入getchar(),因此您的代码不等待下一个输入.