AlgebraMaster

Modern C++ 创造非凡 . 改变世界

导航

Linux C Programing - Terminal(1)

#include <stdio.h> //getchar() putchar() printf() gets() puts() sprintf()
#include <stdlib.h> //exit() rand () srand() system() free() malloc()


//int getchoice (char *greet , char *choices[]);
int getchoice (char *greet , char **choices);

int main()
{
    char *menu[] = {
            "a - add new record",
            "d - delete record",
            "s - show record num ",
            "q - quit",
            NULL,
    };
    int record_num = 0;
    int choice = 0;
    do
    {
        choice = getchoice("Please select an action",menu);
        printf("Your choice is %c \n",choice);
        switch (choice)
        {
            case 'a':
            {
                printf("Add record over\n");
                record_num++;
                break;
            }
            case 'd':
            {
                printf("Remove a record over\n");
                record_num--;
                break;
            }
            case 's':
            {
                printf("The record num is %d \n",record_num);
                break;
            }
            default:
                break;
        }
    }
    while(choice!='q');
    exit(0);
}

int getchoice (char *greet , char **choices)
{
    char **option;
    int chosen=0; // control choice is the member of menu list
    int selected;
    do
    {
        printf("Choice: %s \n" ,greet);
        option=choices;
        while (*option!=NULL)
        {
            printf("%s\n",*option);
            option++;
        }

        do
        {
            selected=getchar();
        }while (selected=='\n'); // solve the enter char + '\n' problem,because will cause
        //next input enter the '\n' directly

        option =choices;
        while(*option)
        {
            if(selected == *option[0])
            {
                chosen=1;
                break;
            }
            option++;
        }
        if (!chosen)
        {
            printf("Incorrect choice,try again\n");
        }

    }
    while(!chosen);
    return selected;
}

 

posted on 2016-03-18 14:04  gearslogy  阅读(232)  评论(0编辑  收藏  举报