[Solved] Need some help figuring out how to do 2 things in my C program [closed]


as far as i understand:

#include <stdio.h>
#include <string.h>

void pause(void);
void print_result(char **menu, int ret);
void clrscr(void);

#define MENU_INPUT(a)   menu_input(a,sizeof(a)/sizeof(*a))


char * main_menu[]={
    "Display First Menu",
    "Display Sencond Menu"
    };

 char * first_menu[]={
    "Format Drive C:",
    "Partition First Drive",
    "Scan Drive"
    };
char * second_menu[]={
    "Display an image",
    "Play a sound"
    };


int menu_input(char **menu,int items){
    int i, j;

    clrscr();

    for(i = 1; i<=items;i++)
        printf(" %d - %s\n",i, menu[i-1]);

    printf(" 0 - to cancel\n ");

    do{
        scanf("%d", &i);
    }while( i < 0 || i > items);

    return i;   
}





int main(void){
    int ret;
    for( ; ; ){
        switch( MENU_INPUT( main_menu ) ){
            case 0:
                return 0;
            case 1:
                ret = MENU_INPUT( first_menu );
                print_result( first_menu, ret );
                break;
            case 2:
                ret= MENU_INPUT(second_menu);
                print_result( second_menu, ret );
       }
    }

    return 0;
}


// these are some helpper functions

void pause(void){
    char c;
    printf("press enter to continue\n");
    scanf(" %c", &c);
}


void print_result(char **menu, int ret){
    if( ret ){
        printf("You pressed %d (%s)\n", ret, first_menu[ ret - 1 ] );
        pause();
    }
}


// clear screen
void clrscr(void){
#ifdef WIN32
    char *cmd = "cls";
#else
    char *cmd = "tput reset";
#endif

    system(cmd);
}

1

solved Need some help figuring out how to do 2 things in my C program [closed]