kbhit(), bioskey(), system(pause)
2017.09.18 kbhit(), bioskey(), system(“pause”)
#include<iostream> #include<conio.h> #include<stdlib.h> using namespace std;int main() {char ch;while(ch != 27){printf("kbhit()檢測鍵盤是否有輸入,有則返回非0,否則返回0。(除非按Esc鍵,否則你講一直看見這句話!!\n");if(kbhit())ch = getch();}printf("End!\n");system("pause");return 0; } #include<iostream> #include<conio.h> using namespace std;int main() {while(!kbhit())cout << "無鍵按下" << endl;cout << "有鍵按下" << endl;system("pause");return 0; }函數名:kbhit()
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0
用 法:int kbhit(void);
包含頭文件: conio.h
kbhit()在執行時,檢測是否有按鍵按下,有按下返回非0值,沒有按下則返回0,是非阻塞函數;
不同于getch()的在執行時,檢測按下什么鍵,如果不按鍵該函數不返回,也就不進行下一步操作,是阻塞函數。
當參數cmd為1時,bioskey()檢測是否有鍵按下。沒有鍵按下時返回0;有鍵按下時返回按鍵碼(
任何按鍵碼都不為0),但此時并不將檢測到的按鍵碼從鍵盤緩沖隊列中清除。 是非阻塞函數;
當參數cmd為0時,bioskey()返回鍵盤緩沖隊列中的按鍵碼,并將此按鍵碼從鍵盤緩沖隊列中清
除。如果鍵盤緩沖隊列為空,則一直等到有鍵按下,才將得到的按鍵碼返回。是阻塞調用。
實際上,kbhit()有點像bioskey(1)
函數原型:int bioskey (int cmd)
說明:bioskey()的函數原型在bios.h中(TC編譯環境下的函數,VC無法使用)
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鍵狀態
字節位為1表示該鍵被按下,為0表示松開。
system是一個C語言和C++下的函數。windows操作系統下system () 函數詳解主要是在C語言中的應用,system函數需加頭文件
#include<iostream> #include<stdlib.h> #include<string.h> using namespace std;void print() {printf(" ╪╪╪╪╪╪╧╧╧╧╧╧╧╧╪╪╪╪╪╪\n");printf("╔═══╧╧C語言關機程序 ╧╧═══╗\n");printf("║※1.實現10分鐘內的定時關閉計算機 ║\n");printf("║※2.立即關閉計算機 ║\n");printf("║※3.注銷計算機 ║\n");printf("║※0.退出系統 ║\n");printf("╚═════════════════╝\n"); } void main() {system("title 自動關機程序");system("mode con cols=48 lines=25");system("color 0B");system("date /T");system("TIME /T");char cmd[20] = "shutdown -s -t ";char t[5] = "0";print();int c;scanf("%d", &c);getchar();switch(c){case 1:printf("您想在多少秒后自動關閉計算機?(0~600)\n");scanf("%s", &t);system(strcat(cmd, t));break;case 2:system("shutdown -p");break;case 3:system("shutdown -l");break;case 0:break;default:printf("Error!\n");}system("pause");exit(0); }system(“pause”)可以實現凍結屏幕,便于觀察程序的執行結果;system(“CLS”)可以實現清屏操作。而調用color函數可以改變控制臺的前景色和背景,具體參數在下面說明。
例如,用 system(“color 0A”); 其中color后面的0是背景色代號,A是前景色代號。各顏色代碼如下:
0=黑色 1=藍色 2=綠色 3=湖藍色 4=紅色 5=紫色 6=黃色 7=白色 8=灰色 9=淡藍色 A=淡綠色 B=淡淺綠色 C=淡紅色 D=淡紫色 E=淡黃色 F=亮白色
總結
以上是生活随笔為你收集整理的kbhit(), bioskey(), system(pause)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: xp怎么让计算机开启ftp,Win7和W
- 下一篇: 关于计算机应用梦想作文,我为梦想而努力7