1. c語言。如何同時接收兩個鍵
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
void main()
{
short a;
short b;
printf("Hello World!");
while(1)
{
a=GetAsyncKeyState('A');
b=GetAsyncKeyState('B');
if(a<0&&b<0)
{
printf("press A and B \n");
}
Sleep(100);
}
}
//同時按下A鍵和B鍵就會列印字元
2. 求救c語言 如果要檢測兩個鍵同時被按下和鬆手檢測的,要怎麼樣寫呢
程序是順序執行的,不存在嚴格的「同時」檢測。所以,我們可以設置一個很「高」的檢測頻率。在同一個檢測周期里發現按鍵都按下就可當做是同時按下。
然後你需要解決如何發現按鍵按下動作這個問題。
按鍵按下同樣也不必一按下你就馬上要發現這么緊張。同樣在這么一個很「高」的檢測頻率下。發現前一次檢測是個「沒按下」狀態現在變成了「按下」那就可以當做是這次檢測周期里「按下」。
然後你需要解決如何記錄前一次檢測是什麼東西的問題。
你需要額外用個寄存器暫時放你前一次檢測的結果。並在檢測周期結束之前記錄當前的「日誌」。
於是,你可以很從容地發現現在按鍵的狀況以及上一次按鍵是個什麼情況,你掌握了歷史、當下、還要安排一下未來:檢測到按鍵的動作後你要再寫個服務程序來使用這個按鍵檢測的結果。
最後,再說明一下,這個很「高」的頻率大概10幾ms也行的。越高頻率檢測越准確。同時。這個「同時」的檢測也越嚴格。你可能會導致怎麼按都很難觸發『同時』的動作。
3. 摁鍵盤中,同時按下兩個鍵的c語言程序怎麼寫求一段程序
按鍵的同時檢測
如果實在游戲裡面
windows.h,stdio.h
if(GetAsyncKeyState('A')&0x8000)//'A'
c|=4;
if(GetAsyncKeyState('D')&0x8000)//'D'
c|=8;
if(c&4&&c&8)
{printf("hello");
c=0;
}
用了GetAsyncKeyStateapi的函數,這個函數的使用方法很有特點
用了get監測按鍵按下,然後c分別和4,8來或運算,然後if再用與運算監測,確實按下了那兩個按鍵之後執行什麼,當然在加&&,可以監測多個按鍵
4. C程序怎樣樣判斷連續兩次按鍵
首先,連續兩次按鍵不是C的功能(嚴格講,C標准沒有按鍵這個功能的)而是你的操作系統或平台的功能(如單片機和PC肯定不同)windwos下,1般編譯器有1個kbhit()函數(VC,gcc,c++builder都有)它可判斷是不是有鍵按下,這樣就能夠實現你的要求以下程序連續兩次按鍵後退出#includeconio.hintmain(){while(kbhit()==0);getch();///按了1次while(kbhit()==0);getch();///按了2次return0;}固然,如果你是單片機或其它平台,kbhit()或許就要自己實現了
5. 51單片機矩陣鍵盤如何實現兩個鍵同時按下的時候顯示其他數字,用c語言程序實現,
定義一個按鍵緩沖區
用普通的按鍵掃描程序,當掃描到有按鍵按下的時候。按鍵鍵的值寫入緩沖區。繼續掃描直到完成。
然後返回緩沖區地址就可以得到多個按鍵的數據了。
這樣只要定義16位元組的緩沖區全部按鍵都能檢測到。(一般不需要那麼多6個足夠)
還有一種方式 是 如果只返回2個按鍵的話。
可以這樣
常規按鍵掃描 返回范圍在0-15也就是0-F
讀取到一個值後把這個值左移4位
再繼續讀取。當讀取到第二個值的時候與上第一個值。就能獲取2個按鍵的值了。
6. c語言 GetAsyncKeyState好像只能同時按下兩個鍵有用,第三個鍵就沒用了,請大神幫忙決絕下
按鍵的同時檢測如果實在游戲裡面windows.h,stdio.hif(GetAsyncKeyState('A')&0x8000)//'A'c|=4;if(GetAsyncKeyState('D')&0x8000)//'D'c|=8;if(c&4&&c&8){printf("hello");c=0;}用了GetAsyncKeyStateapi的函數,這個函數的使用方法很有特點用了get監測按鍵按下,然後c分別和4,8來或運算,然後if再用與運算監測,確實按下了那兩個按鍵之後執行什麼,當然在加&&,可以監測多個按鍵
7. 求救c語言 如果要檢測兩個鍵同時被按下和鬆手檢測的,要怎麼樣寫呢
C語言 用getch() 可以即時獲得按鍵的鍵值。
如果按下一個鍵,手不移動,根據你的鍵盤設置(按鍵時間長於多少則為新的按鍵),getch()會連續獲得鍵值。
組合鍵將輸出組合鍵的鍵值。
某些鍵,按一次會有2個鍵值,例如 F1,F2...F12, 上下左右箭頭鍵。
Windows 和MFC c++ 程序 可以或的 各種復雜的按鍵「事件」,按著,抬起,按下抬起,你可以測時間間隔,時間延時,可以寫很嚕蘇的程序。
#include<stdlib.h>
#include<stdio.h>
void main()
{
int i;
int key,key2;
// 普通鍵用 getch();取得
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
key = getch();
printf("\nkey value = 0x%02x -- %d\n",key,key);
// 箭頭鍵
if (key == 0xe0) {
key = getch();
printf("\nkey value = %02x -- %d\n",key,key);
};
// F1鍵
if (key == 0) {
key2 = getch();
printf("\nkey value = %02x\n",key2);
switch (key2) {
case 0x003b: printf("F1 key");break;
case 0x003c: printf("F2 key");break;
case 0x003d: printf("F3 key");break;
case 0x003e: printf("F4 key");break;
case 0x003f: printf("F5 key");break;
case 0x0040: printf("F6 key");break;
case 0x0041: printf("F7 key");break;
default: break;
};
};
}
8. [c語言]檢測 2種鍵盤輸入,這樣行不行呢
scanf返回的是你正確輸入變數的數目,如果你輸入hello 0 a 0
那麼word就得到了正確的值,row也得到了正確的,col得到了錯誤的,那麼後面的orientation就得不到值了,那麼scanf的返回值是2.
如果只有你所說的這兩種輸入,而沒有其他錯誤的輸入的話,你的程序的邏輯是可以的
9. 如何設計2個按鍵同時按的鍵盤掃描C程序
1、讀鍵程序:讀P1。
內容對應+、-、TH/TL。
計次數識別TH/TL的長按和短按。
還需要考慮一個設定結束的考慮。
或者長時間無按鍵,視為設定完成。
2、顯示程序:建議另一個定時中斷中顯示TH、TL的被設定值。
3、定時中斷程序:通過IO指示燈翻轉
10. C語言:我用if判斷兩個按鍵來進入模式1和模式2,如何用第三個按鍵來重
voidchoose()
{
while(1)
{
chooseinit();
while(1)
{
rd=0;
.....
if(s3==0)
{
break;
}
.....
}
}
}