Как настроить контекстное меню на Си(в консоли), чтобы при достижении определенного case выводил обратно в главное меню
printf("Enter any character to display the menu.\n");
char a = getchar();
scanf("%s", &a);
system("clear");
printf("1)Start testing\n"
"2)Instructions for working with the program\n"
"3)Exit application\n");
char b = getchar();
scanf("%s", &b);
if (!isdigit(b)) {
printf("Error");
exit(0);
}
else {
switch (b) {
Как сделать, чтобы при прочтении инструкции, пользователь ввел любой символ/символы и вернулся в главное меню? Через goto делается довольно просто, но пока я читал о нем меня уберегали от его использования очень яростно.
case '2':
system("clear");
printf("Тут будет инстуркция по работе, ее надо прорабоать\n");
scanf("%s",&b); //тут попробовал чтобы вводил символы, при введения одного символа не работает
break;
Ответы (1 шт):
Автор решения: AlexGlebe
→ Ссылка
Если программа не помещается визуально не экран, обычно советуют использовать переменные состояния продолжать или нет. И использовать цикл do{..}while(..);
bool contin ;
do {
contin = false ;
printf("Enter any character to display the menu.\n");
char a = getchar();
scanf("%s", &a);
system("clear");
printf("1)Start testing\n"
"2)Instructions for working with the program\n"
"3)Exit application\n");
char b = getchar();
char buf[16];
scanf("%s", &buf[0]);
b = buf[0];
if (!isdigit(b)) {
printf("Error");
exit(1);
}
else {
switch (b) {
case '2':
system("clear");
printf("Тут будет инстуркция по работе, ее надо прорабоать\n");
//тут попробовал чтобы вводил символы, при введения одного символа не работает
scanf("%s", &buf[0]);
b = buf[0];
contin = true ;
break;
}
}
} while ( contin ) ;