best approach c menu terminal
#include<stdio.h>
typedef void (*Menu_Processing_Function_Pointer)(void);
struct Menu_Option
{
char choice;
char const *p_selection_text;
Menu_Processing_Function_Pointer p_processing_function;
};
void Process_Selection_One(){
printf("Test one\n");
};
void Process_Selection_Two(){
printf("Test two\n");
};
struct Menu_Option main_menu[] =
{
{'1', "Option 1", Process_Selection_One},
{'2', "Option 2", Process_Selection_Two},
};
static const size_t quantity_selections =
sizeof(main_menu) / sizeof(main_menu[0]);
int main(){
printf(
"\n"
"------------------------------\n"
" Main Menu\n"
"------------------------------\n"
);
for (size_t i = 0; i < quantity_selections; i++) {
printf("%li:\t%s\n", i+1, main_menu[i].p_selection_text);
}
printf("Enter selection, 0 to quit: ");
char choice;
scanf("%c", &choice);
for (size_t i = 0; i < quantity_selections; ++i) {
if (choice == main_menu[i].choice) {
Menu_Processing_Function_Pointer p_function = main_menu[i].p_processing_function;
(p_function)();
break;
}
}
return 0;
}
Are there any code examples left?
New code examples in category C
-
C 2022-03-27 22:30:45 Problem Statement Print the following output: \ Input Format IN Output Format \
-
C 2022-03-27 18:30:08 how to free memory in c
-
C 2022-03-27 18:00:14 linux command line windows
-
C 2022-03-27 18:00:02 C example of if else
-
C 2022-03-27 17:10:18 sum of digits in c using for loop
-
C 2022-03-27 12:35:50 replace word in c
-
C 2022-03-27 07:40:11 How to setup a line length marker in vim
-
C 2022-03-27 07:35:09 Multi Select with icons htm;