5

ユーザーがいくつかのオプションから選択する必要がある単純なプログラムを c で作成しようとしています。

char command = '1';
while(command!='0') {
    printf("Menu:\n");
    printf("1. First option\n");
    printf("2. Second option\n");
    printf("0. Exit\n");
    printf("Choose: 0,1,2?: ");
    command = getchar();
    while(getchar()!='\n');     
    switch(command) {
        case '0': break;
        case '1': functionCall1(); break; 
        case '2': functionCall2(); break;
    }
}

私のコードの問題は、1、2、または 0 を入力するたびに何も起こらず、メニューだけが再び表示されることです。デバッガーを使用すると、 command = getchar() の後の command の値が毎秒 '' に等しいことがわかります。改行文字を食べるだけで十分だと思いましたか?

4

3 に答える 3

1

望ましいコマンドを使用するためのキーとして使用する必要int xがあるかもしれません。

while(x != 0)
{
    scanf("%d", &x);
    switch (x)
    {
        printf("input '2' to...\n");
        printf("input '3' to...\n");
        printf("input '4' to...\n");
        printf("input '5' to...\n");
        printf("input '6' to...\n");
        case 1:
            head = Enqueue(head);
            break;
        case 2:
            head1 = spisokMagazinovScenoiMensheiZadannoi(head, head1);
            break;
        case 3:
            head1 = udalenieElementa(head1);
            break;
        case 4:
            head1 = addNewMagazin(head1);
            break;
        case 5:
            head1 = addNewMagazin(head1);
            break;
        case 6:
            printToTheFile(head);
            break;

    }
}

以前の宿題で使いました。それがあなたに役立つことを願っています

于 2012-05-16T08:10:28.477 に答える