1. 在c語言里有沒有一段代碼能實現按鍵盤上的"Esc 」鍵進行退出操作
<stdio.h>
#include <bios.h>
int main(void)
{
int key, modifiers;
while ((key=bioskey(0)) != 0 && key!=0x11b){
printf("0x%x\n",key);
}
return 0;
}
2. 用c語言模仿windows界面和接收esc之類的功能鍵的問題
#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<bios.h>
#define ESC 283
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
void main()
{
int key;
while(key!=ESC)
{
printf("wait for keypress...\n");
sleep(1);
key = bioskey(0);
switch(key)
{
case ESC:printf("you have press ESC...\n");break;
case UP:printf("you have press UP...\n");break;
case DOWN:printf("you have press DOWN...\n");break;
case LEFT:printf("you have press LEFT...\n");break;
case RIGHT:printf("you have press RIGHT...\n");break;
default:break;
}
}
}
bioskey函數介紹
函數原型: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表示松開。
3. 在c語言中怎麼實現輸入esc退出 其他鍵繼續
可以參考下面的代碼:
#include<conio.h>
#include<stdio.h>
intmain()
{
while(1)
{
if(_kbhit()&&_getch()==0x1b)
break;
printf("dosomething...");
}
}
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。
(3)在c語言中怎麼實現輸入esc擴展閱讀:
kbhit()函數
功能及返回值: 檢查當前是否有鍵盤輸入,若有則返回一個非0值,否則返回0。
用 法:int kbhit(void);
C++語言包含頭文件: include <conio.h>,C語言不需包含額外頭文件。
if語句if語句的一般形式如下:
if(表達式)語句1
[else語句2]
if語句中的「表達式」可以是關系表達式、邏輯表達式,甚至是數值表達式。
4. C語言 關於用ESC實現返回主菜單的
由於輸入字元比較奇怪,以你這個為例,當你輸入以個字元後,回車,不是ESE鍵,這時回車會下一個getch()。有點麻煩。
根據這點,你可以在
printf("請輸按任一鍵\n");
ch=getch();
後面再加依據
getchar();
就行了。
也就是do
{
printf("請輸按任一鍵\n");
ch=getch();
getchar();//不要以為要輸入兩次,其實調試時你回發現只需輸入一次
}
while(ch!=27)
5. C語言,自己編寫一個類似scanf的函數(如叫myscanf),功能要求:若輸入的第一個字元是ESC,則退出myscanf
把下面程序改成 函數就可以了。
關鍵,用getch(); 判斷第一個字元是不是ESC。以後用getchar();
用 sscanf(str,"%d",&x); 把輸入流 的 內容 轉 int , 或 %f 轉 float ...
void main()
{
char str[80];
int x,i=0;
while (1){
if (i==0) str[i] = getch(); else str[i]=getchar();
if (str[0]==0x1B) {printf("I got ESC\n"); exit(0);};
if (str[i]=='\n') break;
i++;
}
sscanf(str,"%d",&x);
printf("%d",x);
}
6. C語言輸入ESC退出
0x代表的是16進制,1b代表的就是ESC的asc碼,getchar()函數用來捕獲你鍵盤輸入的字元。
7. c語言中如何設計任意時刻按esc鍵返回主菜單
用#include <conio.h>中的getch()函數;
如:int c = getch();
if (c == 27) //ESC的ASC碼是27
{
//顯示主菜單
}
8. 請教一個C語言按ESC退出的問題
ESC按鍵的ascii碼是十進制的27,或者是十六進制的1B,還可以是char型的'esc'。
如果你是想在輸入字元串時按ESC退出,那就一個個的輸入字元,等到輸入的字元為'esc'時跳出就好。
9. esc c語言
按 ESC 鍵後的輸入應當有兩個信號--相當兩個ASCII值。
所以你要連續 讀 兩個鍵值 來判斷,也就是用兩次 getchar()。
ESC 第二個值是 0x1B,第一個值一時記不起來了。
0x1B -- 十六進制 1B
10. C語言如何在輸入一串字元後按esc鍵結束
用getch();頭文件為conio.h
getch();為不回顯函數,當用戶按下某個字元時,函數自動讀取,無需按回車。
ESC的鍵碼為27,即調用getch();獲取到值後判斷是否為27,是則退出,否則繼續.