2010-09-22 2 views
10

Я пишу пример консольного приложения в VS2008. Теперь у меня есть метод Console.WriteLine(), который отображает вывод на экране, а затем есть Console.ReadKey(), который ждет, когда пользователь закончит приложение.Очистить буфер консоли

Если я нажимаю , введите, пока отображается метод Console.WriteLine(), после чего приложение завершает работу.

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

ответ

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

Не могли бы вы объяснить, что вы только что сделали? –

+0

Очень приятно. Я не знал об этом! @Soham: прочитайте о ['Console.KeyAvailable'] (http://msdn.microsoft.com/en-us/library/system.console.keyavailable.aspx) в MSDN, и я думаю, что это станет ясным. –

+0

Console.KeyAvailable возвращает true, если в буфере ввода есть ключ. Console.ReadKey (false) считывает ключ из буфера, не отображая его. Этот цикл должен очищать входной буфер. – gandjustas

Смежные вопросы