在 VC 下清空鍵盤緩衝區的方法

2022-09-07 08:03:09 字數 384 閱讀 6994

控制台視窗是有輸入緩衝區的,當你按鍵後程式沒有來得及處理,系統會將按鍵快取,等到程式獲取按鍵的時候,系統會把緩衝區裡面之前的按鍵返回。

// 呼叫控制台 api,清空之前緩衝區內的所有按鍵。

flushconsoleinputbuffer(getstdhandle(std_input_handle));

這段**只在前面**的基礎上,增加了一行清空鍵盤緩衝區的函式呼叫。然後執行程式後可以看到,最後的輸出迴圈無法獲取到之前的任何按鍵。

這個功能在遊戲中會很有用。例如,遊戲開始之前,會有些等待(例如過場動畫)。正式遊戲開始時,應該清空按鍵緩衝區,防止使用者在等待期間的按鍵影響遊戲操作

參考自easyx 官方**中的文章在 vc 下清空鍵盤緩衝區的方法

在 VC 下清空鍵盤緩衝區的方法

控制台視窗是有輸入緩衝區的,當你按鍵後程式沒有來得及處理,系統會將按鍵快取,等到程式獲取按鍵的時候,系統會把緩衝區裡面之前的按鍵返回。呼叫控制台 api,清空之前緩衝區內的所有按鍵。flushconsoleinputbuffer getstdhandle std input handle 這段 只在...

c stringstream緩衝區的清空

stringstream在程式中的作用很廣,可以進行資料間的型別轉換,也可以進行多個字串的拼接。詳見部落格 但是,隨之而來的問題是,stringstream的清空並沒有那麼簡單。用clear的話,記憶體會不斷增長。在for迴圈中每次呼叫strstream.clear 是希望在每次使用完strstre...

win32彙編清空鍵盤緩衝區

可呼叫win32函式flushconsoleinputbuffer 實作方法如下 data consoleinhandle dword 控制台標準輸入控制代碼 code invoke getstdhandle,std input handle 讀取輸入控制代碼,std input handle是wi...