Horje
best approach c menu terminal Code Example
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;
}




C

Related
d3 box shadow Code Example d3 box shadow Code Example
vim soft line break Code Example vim soft line break Code Example
leggere stringhe con spazio in mezzo c Code Example leggere stringhe con spazio in mezzo c Code Example
create point cloud from rgbd image in open3d v0.10 Code Example create point cloud from rgbd image in open3d v0.10 Code Example
imprimir matriz Code Example imprimir matriz Code Example

Type:
Code Example
Category:
Coding
Sub Category:
Code Example
Uploaded by:
Admin
Views:
14