Программа пропускает fgets без разрешения ввода

В основном, как гласит заголовок .. Когда моя программа запускается из консоли, она спросит, хотите ли вы зашифровать или расшифровать ... и когда я введу e или E, она создаст новую пустую строку (пока я не введу некоторые текст), затем отображаются строки «введите текст» и «введите ключ» одновременно.

Итак, в консоли это будет выглядеть примерно так:

Вы хотите (E) ncrypt или (D) зашифровать? е

asdf jkl; <---- случайный пользовательский ввод, чтобы заставить программу продолжить ..

Введите текст, который вы хотите зашифровать: введите ключ для шифрования: (ввод пользователя)

и затем программа выходит ..

//message to be encrypted
char text[250]; 
//word to use as the key
char key[50];
//stores the encrypted word
char encrypted[250];

char answer;
printf("Would you like to (E)ncrypt or (D)ecrypt? ");
scanf(" %c", &answer);

if(answer == 'e' || answer == 'E')
{
    printf("Enter the text you want to encrypt : ");
    fgets(text, 250, stdin);

    printf("Enter a key to use for encryption : ");
    fgets(key, 50, stdin);

    printf("Encrypted text : ");

    //code that encrypts the text here      
}

Таким образом, проблема заключается в том, что он полностью пропускает fgets, а не ждет / позволяет пользователю вводить какие-либо ответы. Зачем?

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

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