程序控制流程无法按预期工作
这是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; }
为了澄清上面提到的注释,在给出输入的过程中,你按Y然后按ENTER 。 因此, y
被认为是第一个getchar()
的输入,而按下[ \n
]的ENTER
键存储在输入缓冲区中。
在调用next getchar()
,会读取\n
,这被认为是getchar()
的完全有效输入,因此您的代码不会等待下一个输入。