Это зависит от того, общается ли пользователь, отправляя строку или одиночный символ / нажатие клавиши.
Если вы общаетесь по строке, попробуйте начать с:
char buffer[MAX_BUF_LEN];
char* pBuffer = buffer;
scanf("%s%*c",pBuffer);
if (strlen(pBuffer) == 0)
goto_main_menu();
else
process_user_input(pBuffer);
Если вы общаетесь с помощью символа / нажатия клавиш, попробуйте начать с:
int inkey = getchar();
if (inkey == '\n')
goto_main_menu();
else
process_user_input(inkey);
Использование "if / else" после вас scanf
что-то совершенно правильно. Все, что отправлено от пользователя, должно быть проверено и проверено, прежде чем оно все равно будет использовано.