當前位置:首頁 » 編程語言 » c語言判斷按鍵
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言判斷按鍵

發布時間: 2023-03-07 21:03:17

A. 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()或許就要自己實現了

B. 如何在c語言中判斷輸入的是回車

ch=getchar(); //從鍵盤上輸入一個字元

if(ch==' ") //判斷ch是否是回車鍵

#include <stdio.h>

#include <string.h>

int main()

{

char meg[1024];

int i=0;

while(i<1024)

{

scanf("%c",meg+i);

if(meg[i]==10) break;

i++;

}

meg[i]='';

if(i==0) {

僅為回車鍵

(2)c語言判斷按鍵擴展閱讀:

在標准C語言的文檔里,對操作符的結合性並沒有做出非常清楚的解釋。一個滿分的回答是:它是仲裁者,在幾個操作符具有相同的優先順序時決定先執行哪一個。

C語言也將 34 種運算符規定了不同的結合性。大多數運算符結合方向是「自左至右」,即:先左後右,也叫「左結合性」,例如 a-b + c,表達式中有-和+兩種運算符,且優先順序相同,按先左後右結合方向,先圍繞減號結合,執行 a-b 的運算,再圍繞加號結合,完成運算(a-b) + c。

C. C語言如何實現判斷2個鍵同時按下

如果是操作系統下,判斷按鍵,需要調用相關操作系統的相關函數。

如果是單片機矩陣鍵盤,需要自己寫循環延時判斷按鈕的電平狀態。

我以window為例子,寫了簡單的判斷W和A鍵同時按下的程序。

兩個按鍵先後按下,之間存在間隔,我定義的常量,默認10毫秒,你需要自己改。

#include<stdio.h>
#include<windows.h>
#definedelayT10//兩個按鍵先後按下的最大間隔,毫秒
intkeyDU(charkey);//判斷按鍵是否按下,是返回1,否返回0
intmain()
{
intkw=0,kwl=0,ka=0,kal=0;

while(1)
{
kw=keyDU('W');
ka=keyDU('A');
if((kw==1&&kwl!=kw)||(ka==1&&kal!=ka))
{
while(delayT)//當其中一個鍵按下,每一毫秒檢查一次兩個鍵有沒有同時按下
{
kw=keyDU('W');
ka=keyDU('A');
if(kw==0)
kwl=kw;
if(ka==0)
kal=ka;
if(kw==1&&kwl!=kw&&ka==1&&kal!=ka)
{
printf("W、A鍵同時被按下 ");
kwl=kw;
kal=ka;
break;
}
Sleep(1);
}
}

if(kw==0)
kwl=kw;
if(ka==0)
kal=ka;
}
return0;
}
intkeyDU(charkey)//判斷按鍵是否按下,是返回1,否返回0
{
intdown=0;
down=GetKeyState(key);
if(down<0)
return1;
if(down>0)
return0;
return-1;
}

D. C語言 如何在一段時間內檢測鍵盤是否按下

#include <bios.h>
#include <stdio.h>
main()
{
int key;
for(;;)
{
if (bioskey(1)) /*有鍵按下,讀取鍵值*/
key=bioskey(0);
else /*無鍵按下,返回0*/
key=0;
switch(key)
{case 0: ...../*無按鍵,執行該操作*/
case 0xXXXXH:..../*不同鍵值,做不同處理*/
。。。。。
}
}
}

該程序段功能:
判斷是否有鍵按下,若有進行不同操作,若無進行其他操作。

相關原理:
函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。

cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。

鍵盤有按鍵時,會把鍵值(掃描碼)存入緩沖區,當需要判斷是否有鍵按下時,掃描緩沖區,為空則無鍵按下,不為空則有鍵按下。注意:該功能並不清空緩沖區。

cmd = 0:
當cmd是0,bioskey()返回鍵盤鍵入的值。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼,高8位存放該鍵的掃描碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。

其操作步驟為:
1.檢測緩沖區是否有數據;
2.沒有則繼續第一步;
3.讀取緩沖區第一個單元中的鍵盤輸入
4.讀取的掃描碼
5.將已讀取的鍵盤輸入從緩沖區刪除

E. C語言如何檢測是否按下功能鍵

有獨立鍵盤和距陣鍵盤的獨立鍵盤的很簡單我就不寫了距陣的我給你寫一個//鍵盤掃描ucharKeys_Scan(){ucharsCode,kCode,i,k;//低4位置0,放入4行P1=0xf0;//若高4位出現0,則有鍵按下if((P1&0xf0)!=0xf0){DelayMS(2);if((P1&0xf0)!=0xf0){sCode=0xfe;//行掃描碼初值for(k=0;k<4;k++)//對4行分別進行掃描{P1=sCode;if((P1&0xf0)!=0xf0){kCode=~P1;for(i=0;i<16;i++)//查表得到按鍵序號並返回if(kCode==KeyCodeTable[i])return(i);}elsesCode=_crol_(sCode,1);}}}return(-1);