Comment libérer de la mémoire tampon d'entrée après fgets débordement?

Je suis confronté à un petit problème avec fgets lorsque la chaîne d'entrée dépasse sa limite prédéfinie.

En prenant l'exemple ci-dessous:

    for(index = 0; index < max; index++)
    {printf(" Enter the %d string : ",index+1)
                if(fgets(input,MAXLEN,stdin))
                {
                    printf(" The string and size of the string is %s and %d \n",input,strlen(input) + 1);
                    removeNewLine(input);
                    if(strcmp(input,"end") != 0)
                   { //Do something with input
                   }
                }

Maintenant, quand je dépasse la longueur MAXLEN et de saisir une chaîne de caractères, je sais que l'entrée d'ajouter un '\0' à MAXLEN -1 et que serait-il. Le problème survient lorsque j'essaie d'entrer dans la 2ème chaîne qui n'est pas demandé-je.e

Output :
Enter the first string : Aaaaaaaaaaaaaaaaaaaa //Exceeds limit
Enter the second string : Enter the third string : ....Waits input

Alors, j'ai pensé que je devrais effacer la mémoire tampon de façon standard comme en C. Il attend jusqu'à ce que je entrer

return

deux fois, La première fois étant ajouté à la chaîne et la prochaine fois,attendons plus d'entrée avec un autre retour.
1. Existe t'il une méthode par laquelle je peux effacer le tampon sans entrer dans le retour supplémentaire?
2. Comment puis-je mettre en œuvre la gestion des erreurs pour la même chose? Parce que le fgets valeur de retour sera Non nulle, et que strlen(entrée) me donne l'acceptés taille de la chaîne par fgets, ce qui devrait être fait?

Merci beaucoup

Si vous garder sur la modification de poster, les autres réponses ne fera pas tout sens à l'avenir. DONC, ne vise pas à résoudre des problèmes spécifiques, mais aussi aide les autres à trouver des réponses.
Je vais revenir. Désolé!
merci de ne pas revenir , pour l'instant, la question semble à ce que vous...

OriginalL'auteur Hooli | 2013-08-21