首页 > 代码库 > 菜单技术

菜单技术

<span style="font-size:18px;">#include <stdio.h>
#include <stdlib.h>

char get_choice(void);
char get_first(void);

int get_int(void);
void count(void);

int main(void)
{
    int choice;
    while((choice = get_choice())!='q')
    {
        switch(choice)
        {
            case 'a':
            printf("Buy low,sell high.\n");
            break;
            case 'b':
            putchar('\a');
            break;
            case 'c':
            count();
            break;
            default:
            printf("Program error!\n");
            break;
        }
    }
    printf("Bye!\n");
    return 0;
}

void count (void)
{
    int n,i;
    printf("Count how far ? Enter integer:\n");
    n = get_int();
    for( i = 0; i < n ; i++)
    {
        printf("%d\n",i);
    }
    while(getchar()!='\n')
    continue;
}

char get_choice(void)
{
    int ch;
    printf("Enter the letter of your choice:\n");
    printf("a.advice        b.bell\n");
    printf("c.count         d.quit\n");
    ch = get_first();
    while(((ch < 'a')||ch >'c') && ch != 'q')
    {
        printf("Please respond with a,b,c,d,and q.\n");
        ch = get_first();
    }

    return ch;
}

char get_first(void)
{
    int ch;
    ch = getchar();
    while(getchar() != '\n')
    continue;
    return ch;
}

int get_int(void)
{
    int input;
    char ch;
    while(scanf("%d",&input) != 1)
    {
        while((ch = getchar())!='\n')
        putchar(ch);<span style="white-space:pre">				</span>/* 剔除错误的输入 */
        printf(" is not an integer.\n Please enter an integer value,such as 25,-178,or 3:");
    }
    return input;
}
</span>

菜单技术