當前位置:首頁 » 編程語言 » c語言bioskey

c語言bioskey

發布時間: 2022-09-02 18:05:02

c語言中的bioskey()

bioskey()接收的是掃描碼。
函 數 名: bioskey 頭文件:bios.h
功 能: 直接使用BIOS服務的鍵盤介面(也可以理解為:讀取鍵盤值)
用 法: int bioskey(int cmd);
輸入參數:cmd=0 返回一個鍵盤值,如無鍵盤按下,一直等待。

cmd=1 查詢鍵盤是否按下 0-無鍵按下,非0-有鍵按下。

cmd=2 返回控制鍵狀態,返回值保存在低8位中。

#define NUM1 0x4f31 /* 小鍵盤區上數字鍵1 */
#define NUM2 0x5032 /* 小鍵盤區上數字鍵2 */
#define NUM3 0x5133 /* 小鍵盤區上數字鍵3 */
#define NUM4 0x4b34 /* 小鍵盤區上數字鍵4 */
#define NUM5 0x4c35 /* 小鍵盤區上數字鍵5 */
#define NUM6 0x4d36 /* 小鍵盤區上數字鍵6 */
#define NUM7 0x4737 /* 小鍵盤區上數字鍵7 */
#define NUM8 0x4838 /* 小鍵盤區上數字鍵8 */
#define NUM9 0x4939 /* 小鍵盤區上數字鍵9 */
#define NUMPNT 0x532e /* 小鍵盤區上 . 鍵 */
#define NUMADD 0x4e2b /* 小鍵盤區上 + 鍵 */
#define NUMSUB 0x4a2d /* 小鍵盤區上 - 鍵 */
#define NUMMUL 0x372a /* 小鍵盤區上 * 鍵 */
#define NUMDIV 0x352f /* 小鍵盤區上 / 鍵 */
#define NUMEQU 0x1c0d /* 小鍵盤區上 = 鍵 */#define KEY0 0xb30 /* 主鍵盤區上數字鍵0 */
#define KEY1 0x231 /* 主鍵盤區上數字鍵1 */
#define KEY2 0x332 /* 主鍵盤區上數字鍵2 */
#define KEY3 0x433 /* 主鍵盤區上數字鍵3 */
#define KEY4 0x534 /* 主鍵盤區上數字鍵4 */
#define KEY5 0x635 /* 主鍵盤區上數字鍵5 */
#define KEY6 0x736 /* 主鍵盤區上數字鍵6 */
#define KEY7 0x837 /* 主鍵盤區上數字鍵7 */
#define KEY8 0x938 /* 主鍵盤區上數字鍵8 */
#define KEY9 0xa39 /* 主鍵盤區上數字鍵9 */
#define KEYPNT 0x342e /* 主鍵盤區上 . 鍵 */
#define KEYSUB 0xc2d /* 主鍵盤區上 - 鍵 */
#define KEYMUL 0x92a /* 主鍵盤區上 * 鍵 */
#define KEYEQU 0xd3d /* 主鍵盤區上 = 鍵

⑵ 求c語言中的bioskey的用法呀

bioskey(1)檢測是否有鍵按下,沒有鍵按下時返回0,有鍵按下時返回按鍵碼(任何按鍵碼都不為0),但此時並不將檢測到的按鍵碼從鍵盤緩沖隊列中清除.
bioskey(0)返回鍵盤緩沖隊列中的按鍵碼,並將此按鍵碼從鍵盤緩沖隊列中清除.
bioskey(2)返回按鍵的狀態(如組合鍵等),返回的整數中的每一個位含義如下:

┌——┬———————————┬———————————┐
│ 位 |為0時意義 │為1時意義 │
├——┼———————————┼———————————┤
│ 7 │插入狀態 │改寫狀態 │
│ 6 │大寫狀態 │小寫狀態 │
│ 5 │數字狀態,NumLock燈亮│游標狀態,NumLock燈熄 │
│ 4 │ScrollLock燈亮 │ScrollLock燈熄 │
│ 3 │Alt按下 │Alt未按下 │
│ 2 │Ctrl按下 │Ctrl未按下 │
│ 1 │左Shift按下 │左Shift未按下 │
│ 0 │右Shift按下 │右Shift未按下 │
└——┴———————————┴———————————┘

這些都是從 C函數速查 中找的,大家可以從網上搜一下.bioskey()是返回鍵盤狀態的基本函數,它擁有3個參數
函數原型為:

int bioskey(int cmd)

其中cmd有3個參數:0,1,2

各參數的用法為:

當cmd是0,bioskey()返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。
cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。
cmd = 2:
當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。
位元組位 含義
0 右邊Shift鍵狀態
1 左邊Shift鍵狀態
3 Ctrl鍵狀態
4 Alt鍵狀態
5 ScrollLock鍵狀態
6 NumLock鍵狀態
7 CapsLock鍵狀態
8 Insert鍵狀態bioskey函數
函數原型: int bioskey(int cmd);
函數功能:
利用函數bioskey可以實現三種功能,參數cmd為要實現的功能號,值只能為0、1、2,具
體含義如下:
0:在系統中有一個按鍵隊列,所有的鍵盤按鍵都在這里排成隊。該功能就是如果按鍵隊
列中有按鍵,那麼讀取隊列首位的按鍵,並返回按鍵值;否則等待鍵盤按鍵出現。(其
中按鍵值的高位元組為掃描碼,低位元組為ASCII碼)
1:如果按鍵隊列中沒有按鍵,那麼返回零,否則返回非零。
2:返回特殊按鍵Shift、Ctrl、Alt等鍵的按鍵狀態
bioskey函數用於從內存中讀取一個按鍵的scancode值.
格式是: int bioskey(int cmd)
參數cmd取值:
0: 讀取scancode,並從內存中刪除,如果沒有按鍵則等待.
1: 讀取scancode,但不從內存中刪除(其它函數可以繼續使用),如果無按鍵則返回0
2: 返加shift alt ctrl鍵的狀態
按下shift返回1,按下ctrl返回4,按下alt返回8,
如果是 shift+ctrl 則返回5(相加),依此類推....下面是一個例子:
#include <bios.h>
main()
{
while(!kbhit())
{
printf("\n%d,%d",bioskey(0),bioskey(2));
}
}
注意:這是一個死循環,因為參數0表示接收按鍵碼,但將其清除,所以kbhit()函數就接收不到按鍵了.
可按ctrl+break組合鍵來終止這個程序.然後將 bioskey(0)改為 bioskey(1),
如果不按鍵將顯示0,若按鍵則立即結束

函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。
cmd = 0:
當cmd是0,bioskey()返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。
cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。
cmd = 2:
當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。

位元組位 含義
0 右邊Shift鍵狀態
1 左邊Shift鍵狀態
3 Ctrl鍵狀態
4 Alt鍵狀態
5 ScrollLock鍵狀態
6 NumLock鍵狀態
7 CapsLock鍵狀態
8 Insert鍵狀態

位元組位為1表示該鍵被按下,為0表示松開。
程序例:

#include <stdio.h>
#include <bios.h>
#include <ctype.h>

#define RIGHT 0x01
#define LEFT 0x02
#define CTRL 0x04
#define ALT 0x08

int main(void)
{
int key, modifiers;

/* function 1 returns 0 until a key is pressed */
while (bioskey(1) == 0);

/* function 0 returns the key that is waiting */
key = bioskey(0);

/* use function 2 to determine if shift keys were used */
modifiers = bioskey(2);
if (modifiers)
{
printf("[");
if (modifiers & RIGHT) printf("RIGHT");
if (modifiers & LEFT) printf("LEFT");
if (modifiers & CTRL) printf("CTRL");
if (modifiers & ALT) printf("ALT");
printf("]");
}
/* print out the character read */
if (isalnum(key & 0xFF))
printf("'%c'\n", key);
else
printf("%#02x\n", key);
return 0;
}

bioskey 返回的值有兩種情況。
就 ASCII 而言:按一個按鍵會有兩種情況發生。
1.按一個按鍵,產生一個ASCII,這樣 bioskey 返回的值就是:hi:掃描碼,lo:ASCII
2.按一個按鍵,產生兩個ASCII,一個是0,另一個是每個鍵不同的ASCII, bioskey 的返回值就是:hi:ASCII, lo:0
有很多鍵沒有ASCII,例如Shift, Ctrl, CapsLock 等,但是他們有掃描碼,只要是按鍵就有掃描碼。

掃描碼和ASCII是完全不同的兩個概念,是硬體識別鍵盤的編碼,每個按鍵都有固定的掃描碼,用來區別每個按鍵,不同的按鍵的掃描碼都不同。
兩個按鍵的ASCII有可能相同,但是掃描碼一定不同,只要是兩個鍵,掃描碼就不同,例如兩個回車,ASCII相同,但是掃描碼不同。

我以前的程序編過一段掃描碼,貼出來給你看看:(7年前編的,本來是我當時想做的一個游戲引擎的一段程序,可以判斷和處理鍵盤上任意多個鍵同時按下/抬起的情況,可惜因種種原因中斷了,因DOS程序,現在也沒什麼意義了)
掃描碼的D7位為0,表示這個按鍵被按下產生的中斷,D7為1表示這個按鍵被抬起產生的中斷。

//特殊按鍵
//Pause = 0xe145 / 0xe1c5 (0xe1,0x1d(Ctrl),0x45(NumLock) - 0xe1,0x9d,0xc5)
//Break = 0xe046 / 0xe0c6 (0xe0, ScrollLock)
//PrtSc = 0xe037 / 0xe0b7 (0xe0, KeyPad - *)
//SysRq = Ctrl - PrtSc

char PauseKeyName=
{
"NULL", //00
"Esc", //01
"1 !", //02
"2 @", //03
"3 #", //04
"4 $", //05
"5 %", //06
"6 ^", //07
"7 &", //08
"8 *", //09
"9 (", //0A
"0 )", //0B
"- _", //0C
"+ =", //0D
"BackSpace", //0E
"Tab", //0F
"Q", //10
"W", //11
"E", //12
"R", //13
"T", //14
"Y", //15
"U", //16
"I", //17
"O", //18
"P", //19
" }", //1B
"Enter", //1C
"L-Ctrl", //1D
"A", //1E
"S", //1F
"D", //20
"F", //21
"G", //22
"H", //23
"J", //24
"K", //25
"L", //26
"; :", //27
"" \"", //28
"` ~", //29
"L-Shift", //2A
"\\ |", //2B
"Z", //2C
"X", //2D
"C", //2E
"V", //2F
"B", //30
"N", //31
"M", //32
", <", //33
". >", //34
"/ ?", //35
"R-Shift", //36
" *", //37
"L-Alt", //38
"Space", //39
"CapsLock", //3A
"F1", //3B
"F2", //3C
"F3", //3D
"F4", //3E
"F5", //3F
"F6", //40
"F7", //41
"F8", //42
"F9", //43
"F10", //44
"NumLock", //45
"ScrollLock",//46
" 7 Home", //47
" 8 Up", //48
" 9 PgUp", //49
" -", //4A
" 4 Left", //4B
" 5", //4C
" 6 Right", //4D
" +", //4E
" 1 End", //4F
" 2 Down", //50
" 3 PgDn", //51
" 0 Ins", //52
" . Del", //53
"PrtSc(Alt)",//54
"??? 55H", //55
"Added \\ |",//56
"F11", //57
"F12", //58
"??? 59H", //59
"??? 5AH", //5A
"??? 5BH", //5B
"??? 5CH", //5C
"??? 5DH", //5D
"??? 5EH", //5E
"??? 5FH", //5F
"??? 60H", //60
"??? 61H", //61
"??? 62H", //62
"??? 63H", //63
};

char KeyNamesE0=
{
"NULL", //E000
"??? E001H", //E001
"??? E002H", //E002
"??? E003H", //E003
"??? E004H", //E004
"??? E005H", //E005
"??? E006H", //E006
"??? E007H", //E007
"??? E008H", //E008
"??? E009H", //E009
"??? E00AH", //E00A
"??? E00BH", //E00B
"??? E00CH", //E00C
"??? E00DH", //E00D
"??? E00EH", //E00E
"??? E00FH", //E00F
"??? E010H", //E010
"??? E011H", //E011
"??? E012H", //E012
"??? E013H", //E013
"??? E014H", //E014
"??? E015H", //E015
"??? E016H", //E016
"??? E017H", //E017
"??? E018H", //E018
"??? E019H", //E019
"??? E01AH", //E01A
"??? E01BH", //E01B
" Enter", //E01C
"R-Ctrl", //E01D
"??? E01EH", //E01E
"??? E01FH", //E01F
"??? E020H", //E020
"??? E021H", //E021
"??? E022H", //E022
"??? E023H", //E023
"??? E024H", //E024
"??? E025H", //E025
"??? E026H", //E026
"??? E027H", //E027
"??? E028H", //E028
"??? E029H", //E029
"??? E02AH", //E02A
"??? E02BH", //E02B
"??? E02CH", //E02C
"??? E02DH", //E02D
"??? E02EH", //E02E
"??? E02FH", //E02F
"??? E030H", //E030
"??? E031H", //E031
"??? E032H", //E032
"??? E033H", //E033
"??? E034H", //E034
" /", //E035
"??? E036H", //E036
"PrtSc", //E037
"R-Alt", //E038
"??? E039H", //E039
"??? E03AH", //E03A
"??? E03BH", //E03B
"??? E03CH", //E03C
"??? E03DH", //E03D
"??? E03EH", //E03E
"??? E03FH", //E03F
"??? E040H", //E040
"??? E041H", //E041
"??? E042H", //E042
"??? E043H", //E043
"??? E044H", //E044
"??? E045H", //E045
"Break", //E046
"Home", //E047
"Up", //E048
"PageUp", //E049
"??? E04AH", //E04A
"Left", //E04B
"??? E04CH", //E04C
"Right", //E04D
"??? E04EH", //E04E
"End", //E04F
"Down", //E050
"PageDown", //E051
"Insert", //E052
"Delete", //E053
"??? E054H", //E054
"??? E055H", //E055
"??? E056H", //E056
"??? E057H", //E057
"??? E058H", //E058
"??? E059H", //E059
"??? E05AH", //E05A
"L-Start95", //E05B
"R-Start95", //E05C
"Menu95", //E05D
"Power", //E05E
"Sleep", //E05F
"??? E060", //E060
"??? E061", //E061
"??? E062", //E062
"Wake Up", //E063
};

得到掃描碼的方法:攔截鍵盤硬體中斷,計算的結果保存在 KeyScanCode 里,KeyboardProc();就是處理這個值的函數。

unsigned far *_Key_Flags = (unsigned far *)0x00000417L;
unsigned far *_Key_Flags1= (unsigned far *)0x00000496L;
unsigned int far KeyScanCode = 0;
unsigned char far KeyScBuffer={0,0,0,0};
unsigned char far KeyTempChar = 0;

void interrupt NewKb09(...)
{
asm cli
KeyTempChar=inportb(0x60);

KeyScBuffer=KeyScBuffer;
KeyScBuffer=KeyScBuffer;
KeyScBuffer=KeyScBuffer;
KeyScBuffer=KeyTempChar;

KeyTempChar=inportb(0x61);
outportb(0x61,KeyTempChar|0x80);
outportb(0x61,KeyTempChar&0x7f);

if((KeyScBuffer!=0xe0) && (KeyScBuffer!=0xe1))
{
KeyScanCode=KeyScBuffer;
if(KeyScBuffer==0xe0)
KeyScanCode|=0xe000;

if((KeyScBuffer==0xe1) &&
((KeyScBuffer==0x1d) || (KeyScBuffer==0x9d)))
KeyScanCode|=0xe100;

if((KeyScanCode!=0xe02a) &&
(KeyScanCode!=0xe0aa) &&
(KeyScanCode!=0xe036) &&
(KeyScanCode!=0xe0b6) &&
(KeyScBuffer!=0xe1))
KeyboardProc();
}

asm sti
outportb(0x20,0x20);
}

//這是一段測試程序,可以顯示出當前按下或者抬起那個按鍵:

char FmtKscCode="%-10s\r\n";
char FmtUnkName="\rScanCode: ";
char StrKeyName="Press any key or Esc to quit ...";
char ByeStr);
}
else
{
cprintf(FmtKeyName, KeyNames00);
}
}
else
{
cprintf(FmtUnkName, ksCode&0xff7f);
}

textcolor(LIGHTBLUE);
cprintf(StrWait);

ksCode=0;
}
}

textcolor(LIGHTGRAY);
cprintf(ByeStr);

ResOldKb();
return 0;
}
Top

⑶ C++里有沒有C語言的bioskey()函數

好像沒有#include<bios.h>。

C++用的是rand()這個函數是用來產生隨機數的,范圍從0到RAND_MAX, 在<stdlib.h>中有這樣一個定義:
#define RAND_MAX 0x7fff //就是32767了

如果需要產生n到m范圍內的隨機整數,可以:
int ans=rand()*(m-n)/RAND_MAX+n;

如果要產生精度更高、更加均勻的隨機數,有一個簡單的方法,是把若干15位隨機數拼接成一個大隨機數。比如:

__int64 a,ans=0;
for(int k=0; k<4; k++)
{
a=rand();
a<<=15*k;
ans=ans|a;
}

在matlab上測試其顆粒度與均勻性與專業函數產生的隨機數性能有差距但不大。

⑷ bioskey 函數在c語言中的具體用法

函數原型:int bioskey (int cmd);
函數說明:bioskey()的函數原型在bios.h中(完成直接鍵盤操作,cmd的值決定執行操作類型);
函數用法:cmd的取值可以為0,1,2 對應的具體操作類型如下:
1、cmd=0
bioskey()返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)它返回一個16位的
二進制數,包括兩個不同的值.當按下一個普通鍵時,它的低8位數存放該字元的
ASCII碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的
掃描碼;
2、cmd=1
bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0;
3、cmd=2
bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵
的狀態.各鍵狀態存放在返回值的低8位位元組中。

⑸ C語言bioskey()函數問題

  1. 那我怎麼能取出低8位的ascii的值?

    答:short a = bioskey(cmd);//要獲取普通鍵時,cmd的值設置為0;即:short a = bioskey(0);

    int low = a &0xff; //低八位放在了low里了

    int high = a >>8; //高八為放在了high里了

  2. short a = bioskey(2);

    int low = a &0xff; //第八位放在了low里了

當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。

位元組位 含義

0 右邊Shift鍵狀態

1 左邊Shift鍵狀態

2 Ctrl鍵狀態

3 Alt鍵狀態

4 ScrollLock鍵狀態

5 NumLock鍵狀態

6 CapsLock鍵狀態

7 Insert鍵狀態

位元組位為1表示該鍵被按下,為0表示松開。

不是說低八位嗎?也就是0-7這八位。如只按下了Ctrl鍵,就是:[高位] 00000100 [地位]; 也就是low = 4;

加入按下Ctrl鍵的同時,也按下了Alt鍵,就是:[高位] 00001100 [地位]; 也就是low = 12;

⑹ C語言 bioskey() 的 簡單小問題

函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。
cmd = 0:當cmd是0,bioskey()返回下一個在鍵盤鍵入的值(它將等待到 按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼,高8位存放該鍵的掃描碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。

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

cmd = 2: 當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。

位元組位 含義 0 右邊Shift鍵狀態 1 左邊Shift鍵狀態 2 Ctrl鍵狀態 3 Alt鍵狀態 4 ScrollLock鍵狀態 5 NumLock鍵狀態 6 CapsLock鍵狀態 7 Insert鍵狀態

所以你這里用的是第一種功能,bioskey()改為bioskey(0)應該就可以了

你的bioskey()調用就這個問題,你的代碼其他還要看具體的什麼問題,沒有全代碼,怎麼找錯?

前面對bioskey()的介紹也有,調用0功能時返回的是按鍵的掃描碼,你的case是對應的四個方向鍵的掃描碼,並沒有問題

⑺ C語言中函數_bios_keybrd與bioskey有什麼不同

在bios.h中有下面的語句

#define _bios_keybrd(_c) ((unsigned)bioskey(_c))

所以他們其實是一回事,返回值類型有一點點不同

⑻ 請問C語言中的bioskey(0)是啥意思,括弧里的值又有啥用

bioskey(1) == 0表示沒有按下鍵。
bioskey(0)按下的鍵值

函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。
cmd = 0:
當cmd是0,bioskey()返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。
cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。
cmd = 2:
當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。
函數名: bioskey
功 能: 直接使用BIOS服務的鍵盤介面
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中
bioskey()完成直接鍵盤操作,cmd的值決定執行什麼操作。
cmd = 0:
當cmd是0,bioskey()返回下一個在鍵盤鍵入的值(它將等待到按下一個鍵)。它返回一個16位的二進制數,包括兩個不同的值。當按下一個普通鍵時,它的低8位數存放該字元的ASCII碼;對於特殊鍵(如方向鍵、F1~F12等等),低8位為0,高8位位元組存放該鍵的掃描碼。
cmd = 1:
當cmd是1,bioskey()查詢是否按下一個鍵,若按下一個鍵則返回非零值,否則返回0。
cmd = 2:
當cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert鍵的狀態。各鍵狀態存放在返回值的低8位位元組中。

⑼ C語言中bioskey()與kbhit()的區別,最好詳細點,謝謝了

bioskey()函數是TC編譯環境下的函數,VC中無法使用
具體可以看看網路
http://ke..com/view/653950.htm
kbhit();可以在vc中使用,是判斷鍵盤是否有按鍵按下,有就返回1,一般這樣使用
if(kbhit()){..............}
-物聯網校企聯盟技術部

⑽ C語言 bioskey

當然沒有這個庫,這個貌似是DOS時代的東東,可能是TC的吧,現在保護模式下沒有辦法操作bios。。

即使你從TC下面考過來也可能沒有用,因為TC下用的庫有可能不能連接到vc的程序,就像以前很多人問graphic.h這個頭文件一樣。。

你想用的話,可以在虛擬8080模式下用,用內聯匯編就可以實現。

熱點內容
怎麼看聯系人存儲位置 發布:2025-01-15 22:47:14 瀏覽:793
旗艦560配置的是什麼發動機 發布:2025-01-15 22:40:59 瀏覽:625
sql多表連接查詢 發布:2025-01-15 22:33:12 瀏覽:220
android網路休眠 發布:2025-01-15 22:32:12 瀏覽:349
怎麼不下魯大師查看電腦配置 發布:2025-01-15 22:30:23 瀏覽:310
php頁面亂碼 發布:2025-01-15 22:28:49 瀏覽:846
夢幻寶貝腳本 發布:2025-01-15 22:27:36 瀏覽:256
安卓怎麼調成2g網 發布:2025-01-15 22:21:40 瀏覽:285
android小車 發布:2025-01-15 22:21:15 瀏覽:924
微信怎麼沒有設置密碼 發布:2025-01-15 22:19:00 瀏覽:686