为什莫第二个getchar删除后就死循环了
#include<stdio.h>
int main() {
char ch;
ch = getchar();
while (ch != '\n') {
if (ch == 'C' || ch== 'c')printf("BEIJING OLYMPIC GAMES\n");
else if (ch == 'j' || ch == 'J')printf("JAPAN WORLD CUP\n");
else if (ch == 'k' || ch == 'K')printf("KOREA WORLD CUP\n");
else printf("%c\n", ch);
ch = getchar();
}
return 0;
}
你是想多组输入吗?如果是的话可以这样写
如果对你有帮助,还请点个采纳,万分感谢!
第二个getchar是接收下次输入字符的,你删了后除非第一个getchar处不输入直接enter,否则ch永远不等于'\n',就无法退出循环。
另外控制台输入a并回车,实际上会输入a'\n'。第二个getchar会接收余留的'\n',导致循环一次退出。
想要循环输入,12行处应改成:
getchar();
ch = getchar();