这是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;
}
答案 0 :(得分:6)
为澄清上述评论,在提供输入的过程中,您按 Y 然后按 ENTER 。因此,y
被视为第一个getchar()
的输入,ENTER
键按[\n
]存储在输入缓冲区中。
在调用下一个getchar()
时,会读取\n
,这被认为是getchar()
的完全有效输入,因此您的代码不会等待下一个输入。