Функцията kbhit не влиза в знака на буфера

Забележка Microsoft Visual C++ .NET 2002 и Microsoft Visual C++ .NET 2003 поддръжка както защитен код модел, предоставен от Microsoft .NET Framework и неуправляван основен Microsoft Windows код модел. Информацията в тази статия се отнася само за неуправляван код на Visual C++. Microsoft Visual c ++ 2005 поддържа модел на управляем код, предоставен от Microsoft .NET Framework и неуправляван присъщ код модел на Microsoft Windows.

Резюме

Когато приложение тестове стойността, върната от функцията kbhit(), приложението изрично трябва да премахнете знаци от клавиатурата буфера след въвеждане на клавиши. В противен случай kbhit() продължава да върне TRUE.

Следният пример код показва ситуацията:

Примерен код

/* * Compiler options needed: None
*/

#include <conio.h>

void main(void)
{
while (!kbhit())
; // Waits for keystroke
while (kbhit())
getch(); // Empties buffer
while (!kbhit())
; // Waits for keystroke
}

Свойства

ИД на статията: 44895 – Последен преглед: 16.01.2017 г. – Редакция: 1

Обратна връзка