Программа пропускает 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, а не ждет / позволяет пользователю вводить какие-либо ответы. Зачем?