fflush不能清空鍵盤緩衝區

c語言demo,監聽鍵盤是否有輸入,有輸入則執行業務,執行後清空,等待下一次鍵盤按鍵。

 

kbhit() 可以判斷鍵盤緩衝區是否有數據

fflush() 可以清空輸入緩衝區,但是不能清空鍵盤緩衝區的數據,通過下面的代碼可證


#include <Windows.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    while (1)
    {
        printf("kbhit = %d\n", kbhit());
        if (kbhit())
        {
            fflush(stdin);
        }
        Sleep(1000);
    }
    return 0;
}

要清除鍵盤緩衝區,可以

#include <Windows.h>
#include <stdio.h>
#include <conio.h>

int main()
{
    while (1)
    {
        printf("kbhit = %d\n", kbhit());
        if (kbhit())
        {
            while(kbhit()){
                getch();
            }
        }
        Sleep(1000);
    }
    return 0;
}

希望大神提供更好的方法

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章