2010-09-22 5 views
10

J'écris un exemple d'application de console dans VS2008. Maintenant, j'ai une méthode Console.WriteLine() qui affiche la sortie à l'écran, puis il y a Console.ReadKey() qui attend que l'utilisateur termine l'application.Clear Console Buffer

Si j'appuie sur Entrez pendant que la méthode Console.WriteLine() est affichée, puis l'application se ferme.

Comment puis-je vider la mémoire tampon d'entrée avant que la méthode Console.ReadKey() de sorte que peu importe le nombre de fois que l'utilisateur appuie sur le bouton Enter si les données sont en cours d'affichage, la méthode Console.ReadKey() doit arrêter l'application de sortir?

Répondre

22
while(Console.KeyAvailable) 
{ 
    Console.ReadKey(false); 
} 
Console.ReadKey(); 
+2

Pouvez-vous expliquer ce que vous venez de faire? –

+0

Très bien. Je ne savais pas! @Soham: Lisez à propos de ['Console.KeyAvailable'] (http://msdn.microsoft.com/en-us/library/system.console.keyavailable.aspx) sur MSDN et je pense que cela deviendra clair. –

+0

Console.KeyAvailable renvoie true s'il existe une clé dans le tampon d'entrée. Console.ReadKey (false) lit la clé du tampon sans l'afficher. Ce cycle devrait effacer le tampon d'entrée. – gandjustas