每次输出#default - 切换案例

时间:2017-07-21 08:20:36

标签: c

在下面的代码中,无论我输入什么,它总是输出相应的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;
}

1 个答案:

答案 0 :(得分:0)

需要添加其他案例来处理&#39; \ n&#39;条件。这是因为当您在控制台中键入案例并按Enter键时,&#39; \ n&#39;也包括在内。因此,处理此操作将消除默认的案例执行。