int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
}
}
按下鍵盤后_kbhit()下的內容會一直執行,有什么檢測鍵盤松開的函式嗎?就是松開鍵盤后重置a的值
uj5u.com熱心網友回復:
int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
}
else
printf("0");
}
這樣不就可以看到松開的后果了?
uj5u.com熱心網友回復:
這樣子松開后就一直輸出1,a的值沒有重置,我想松開鍵盤之后還是輸出0uj5u.com熱心網友回復:
int a;
while(1)
{
a = _kbhit();
if (a != 0)
{
printf("1");
_getch();
}
else
printf("0");
}
加了個_getch(),實作是實作了,但是我在做游戲人物的移動,移動模塊我用的是GetKeyState,但加上_getch()后,按住鍵盤人物會先動一下,卡一下,然后才一直移動。試著把_getch()換成rewind(stdin)或者fflush(stdin)來清除鍵盤緩沖,但是都沒有效果,有其他清除鍵盤緩沖的方法嗎
uj5u.com熱心網友回復:
你都GetKeyState了,還要_getch干啥?不解。另外無論是GetKeyState還是_getch都不會和stdin打交道,所以你處理stdin沒有效果。
uj5u.com熱心網友回復:
想用_getch()清除鍵盤緩沖,這樣子_kbhitd的值就重置為0了,我用GetKeyState, _kbhit下的陳述句就會反復執行。我的目的是想實作靜止的時候放一套影片,移動的時候放另一套影片,_kbhit不重置的話靜止的時候就會播放移動的影片。現在不用_kbhit換一個思路算是解決問題了,如果能學到松鍵檢測的話更好
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/252777.html
標籤:C語言
上一篇:查找指定字符
