Program überspringt fgets, ohne die Eingabe zuzulassen

Wie der Titel schon sagt. Wenn mein Programm von der Konsole aus ausgeführt wird, werden Sie gefragt, ob Sie es verschlüsseln oder entschlüsseln möchten. Wenn ich e oder E eingebe, wird eine neue Leerzeile erstellt (bis ich etwas eingebe) Text), dann werden die Zeilen "Geben Sie den Text ein" und "Geben Sie den Schlüssel ein" gleichzeitig angezeigt.

So, in der Konsole würde es ungefähr so aussehen:

Möchten Sie (E) verschlüsseln oder (D) verschlüsseln? e

asdf jkl; <---- Zufällige Benutzereingabe, damit das Programm fortgesetzt wird.

Geben Sie den zu verschlüsselnden Text ein: Geben Sie einen Schlüssel für die Verschlüsselung ein: (Benutzereingabe)

und dann wird das Programm beendet.

//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      
}

So das Problem ist, dass es die Fgets komplett überspringt und nicht wartet / dem Benutzer erlaubt, irgendwelche Antworten einzugeben .. warum für?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage