Дождаться нажатия клавиши ввода в C внутри цикла while?

Я пишу программу на C, и мне нужно подождать, пока пользователь нажмет любую клавишу, чтобы продолжить. Когда я используюgetchar(); это ждетВойти ключ для нажатия. Но когда я использую его внутриwhile петля, это не работает. Как я могу заставить мой код ждать нажатия любой клавиши, чтобы продолжить цикл?

Вот мой пример кода. Я использую GNU / Linux.

#include <stdio.h>
#include<stdlib.h>
int main()
{
    int choice;
    while(1) {
        printf("1.Create Train\n");
        printf("2.Display Train\n");
        printf("3.Insert Bogie into Train\n");
        printf("4.Remove Bogie from Train\n");
        printf("5.Search Bogie into Train\n");
        printf("6.Reverse the Train\n");
        printf("7.Exit");
        printf("\nEnter Your choice : ");
        fflush(stdin);
        scanf("%d",&choice);

        switch(choice)
        {
            case 1:
                printf("Train Created.");
                break;
            case 2:
                printf("Train Displayed.");
                break;
            case 7:
                exit(1);
            default:
                printf("Invalid Input!!!\n");
        }

        printf("Press [Enter] key to continue.\n");
        getchar();
    }

    return 0;
}

Ответы на вопрос(0)

Ваш ответ на вопрос