當前位置:首頁 » 編程語言 » 在c語言中怎麼實現輸入esc
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

在c語言中怎麼實現輸入esc

發布時間: 2022-11-04 09:14:20

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,是則退出,否則繼續.