在下面的代码中,无论我输入什么,它总是输出相应的case语句,带有一个默认的case语句!但当我删除while(1){}循环时,一切正常。为什么会这样?循环(对于(;;)循环相同)故障或默认情况的故障?如何更改代码以在循环内正确打印?
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
int main(){
char ch;
puts("Client Management System");
puts("========================");
puts("A: add task");
puts("D: delete task");
puts("U: modify task");
puts("Q: quit system");
while(1){
ch = getchar();
ch = toupper(ch);
switch(ch){
case 'A':
puts("adding task......");
break;
case 'D':
puts("deleting task......");
break;
case 'U':
puts("modifying task......");
break;
case 'Q':
return 0;
default:
puts("invalid option");
}
}
return 0;
}
答案 0 :(得分:0)
需要添加其他案例来处理&#39; \ n&#39;条件。这是因为当您在控制台中键入案例并按Enter键时,&#39; \ n&#39;也包括在内。因此,处理此操作将消除默认的案例执行。