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

鍵盤c語言

發布時間: 2022-06-13 14:53:50

c語言怎樣實現鍵盤操作

在你的基礎上改的
#include<stdio.h>
#include<stdlib.h>

#define LISTSIZE 100
#define ADD 10
typedef struct {
int *elem;
int length;
int listsize;
}List;//定義線性表的結構體
void SqList(List &L)
{

//int i;//C++中C程序的變數定義放在開始

L.elem=(int *)malloc(LISTSIZE*sizeof(int));
if(!L.elem) exit(0);
L.listsize=LISTSIZE;
//printf("請輸入線性表長度:");
//scanf("%d",&L.length);
//printf("為線性表賦值:");
//for(i=0;i<=L.length-1;i++)
//scanf("%5d",&L.elem[i]);
L.length =0;//如果是初始化,那麼長度就是0
}//初始化線性表

int InsertSq(List &L,int i,int e)
{
int *p=NULL, *q=NULL;//所有變數的定義都必須置前
if(i<0||i>L.length+1) return 0;
if(L.length>=L.listsize)
{
int *newbase;
newbase=(int *)realloc(L.elem,(L.listsize+ADD)*sizeof(int));
if(!newbase) exit(0);
L.elem=newbase;
L.listsize+=ADD;
}

q=&L.elem[i-1];
for(p=&L.elem[L.length-1];p>=q;--p)
*(p+1)=*p;
*q=e;
L.length++;
return 1;
}//在線性表的第i個元素之前插入元素e

void PrintList(List L)
{
printf("順序表中的元素:\n");
for(int k=0;k<=L.length-1;k++)
printf("%5d",L.elem[k]);
printf("\n");
}

void main()
{

//void SqList(List &L);
//int InsertSq(List &L,int i,int e);使用之前已經定義了,可以不用函數說明
List L;
int i,e; //函數調用前,變數必須定義

SqList(L);
printf("輸入順序表中元素的個數:");
scanf("%d",&i);

printf("請輸入元素:");
for(int j=1;j<=i;j++)
{
scanf("%d",&e);
InsertSq(L,j,e);
}

PrintList(L);
printf("輸入插入的元素及其位置:");
scanf("%5d%5d",&e,&i);
InsertSq(L,i,e);
PrintList(L);
}

Ⅱ c語言實現鍵盤鋼琴原理

原理很簡單,先在控制台中獲取按鍵事件,在按鍵事件中,開一個線程,這個線程就是專門用來播放鍵對應的音效mp3的。
為什麼要用線程呢,因為直接按鍵播放的話,如果不把mp3播放完,就無法再播放同一mp3,用線程就沒有這個問題了。
線程函數中,就是使用mciSendString函數,打開然後播放對應的mp3文件。

Ⅲ C語言如何模擬鍵盤輸入

C語言模擬鍵盤代碼如下:

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR szCmdLine,int iCmdShow)

{

MSG msg;

if(!MyRegisterClass(hInstance))

{

return FALSE;

}

if(!InitInstance(hInstance,iCmdShow))

{

return FALSE;

}

while (GetMessage (&msg, NULL, 0, 0))

{

TranslateMessage (&msg);

DispatchMessage (&msg);

}

return msg.wParam;

}

//函數:ShowKey

//作用:實現在窗口中顯示按鍵信息

void ShowKey (HWND hwnd, int iType,char *szMessage,WPARAM wParam,LPARAM lParam)

{

static char *szFormat[2] ={"%-14s %3d %c %6u %4d %5s %5s %6s %6s",

"%-14s %3d %c %6u %4d %5s %5s %6s %6s" };

char szBuffer[80];

HDC hdc;

ScrollWindowEx(hwnd, 0, -yChar, &rc,&rc,NULL,NULL,SW_INVALIDATE);

hdc = GetDC (hwnd);

SelectObject (hdc, GetStockObject (SYSTEM_FIXED_FONT));

TextOut (hdc,

xChar,

rc.bottom - yChar,

szBuffer,

wsprintf szBuffer,

szFormat[iType]。

Ⅳ C語言如何從鍵盤輸入任意3個數,按從小到大的順序輸出

代碼1.

//輸入3個數,要求按從小到大順序輸出

#include<stdio.h>

intmain()
{
inta,b,c,t;
printf("請輸入三個數:");
scanf("%d%d%d",&a,&b,&c);
if(a>b)
{
t=a;
a=b;
b=t;
}
if(a>c)
{
t=a;
a=c;
c=t;
}
if(b>c)
{
t=b;
b=c;
c=t;
}
printf("從小到大的順序是:%d%d%d ",a,b,c);
return0;
}

代碼2.

輸入3個字元串,按從小到大順序輸出。//先用程序對三個數進行從小到大排序,然後修改程序
#include<stdio.h>
#include<string.h>
intmain()
{voidswap(char*pt1,char*pt2);
chara[20],b[20],c[20];
char*p1,*p2,*p3;
printf("請輸入三個字元串:");
gets(a);
gets(b);
gets(c);
//或用scanf("%s,%s,%s",a,b,c);
p1=&a[0];p2=&b[0];p3=&c[0];//三個指針分別指向三個字元數組
if(strcmp(*p1,*p2)>0)swap(p1,p2);//if(strcmp(a,b)>0)swap(a,b);//比較兩個字元串的大小,為什麼用前一句的時候會出現警告呢

if(strcmp(a,c)>0)swap(a,c);//if(strcmp(*p1,*p3)>0)swap(*p1,*p3);
if(strcmp(b,c)>0)swap(b,c);//if(strcmp(*p2,*p3)>0)swap(*p2,*p3);
printf("由小到大排列:%s %s %s ",a,b,c);
return0;
}

voidswap(char*pt1,char*pt2)
{chart[20];
strcpy(t,pt1);
strcpy(pt1,pt2);
strcpy(pt2,t);
//t=*pt1;*pt1=*pt2;*pt2=t;
}

代碼3.

#include<stdio.h>
#include<string.h>
#defineSIZE3
#defineLEN50


intmain(void)
{
charstr[SIZE][LEN];
char(*pst)[LEN]=str;
chartemp[LEN];
inti,j;

printf("Pleaseenter3string. ");

for(i=0;i<SIZE;i++)
{
fgets(*(pst+i),LEN,stdin);
}
printf("Beforsort: ");

for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);

}
for(i=0;i<SIZE-1;i++)
for(j=i+1;j<SIZE;j++)
{

if(strcmp(*(pst+i),*(pst+j))==1)
{
strcpy(temp,*(pst+i));
strcpy(*(pst+i),*(pst+j));
strcpy(*(pst+j),temp);
}

}
printf("Aftersort: ");
for(i=0;i<SIZE;i++)
{
fputs(*(pst+i),stdout);
}

}

Ⅳ c語言鍵盤按鍵觸發怎麼表示

可以用FlexibleButton表示。

FlexibleButton 是一個基於標准 C 語言的小巧靈活的按鍵處理庫,支持單擊、連擊、短按、長按、自動消抖,可以自由設置組合按鍵,可用於中斷和低功耗場景。

該按鍵庫解耦了具體的按鍵硬體結構,理論上支持輕觸按鍵與自鎖按鍵,並可以無限擴展按鍵數量。另外,FlexibleButton 使用掃描的方式一次性讀取所有所有的按鍵狀態,然後通過事件回調機制上報按鍵事件。

核心的按鍵掃描代碼僅有三行,沒錯,就是經典的 三行按鍵掃描演算法。使用 C 語言標准庫 API 編寫,也使得該按鍵庫可以無縫兼容任意的處理器平台,並且支持任意 OS 和 non-OS(裸機編程)。

快速體驗:

FlexibleButton 庫中提供了一個測試常式 ./examples/demo_rtt_iotboard.c,該常式基於 RT-Thread OS 進行測試,硬體平台選擇了 RT-Thread IoT Board Pandora v2.51 開發板。

當然你可以選擇使用其他的 OS,或者使用裸機測試,只需要移除 OS 相關的特性即可。

如果你使用自己的硬體平台,只需要將 FlexibleButton 庫源碼和常式加入你既有的工程下即可。

DEMO 程序說明:

該示常式序可以直接在 RT-Thread stm32l475-atk-pandora BSP 中運行,可以在該 BSP 目錄下,使用 menuconfig 獲取本軟體包。

Ⅵ 鍵盤C語言編程輸入程序

getchar函數(字元輸入函數)的作用是從終端輸入一個字元。用法
getchar()

char
a;a=getchar();//表示從鍵盤輸入一個字元,並把他賦值給字元變數a;
還可以用scanf
語句輸入數據。用法
scanf(格式控制,地址表列)
如int
a;
scanf("%d",&a);
scanf("%d%d%d",&a,&b,&c)
"%d%d%d"表示按十進制整數形式輸入三個數據。輸入數據時,在兩個數據之間以一個或多個空格間隔。
格式符
d表示輸入十進制整數、
s用來輸入字元串
f用來輸入小數(實數)
你應該會用了吧
如果不會
歡迎你和我聯系
很樂意為你服務

Ⅶ 如何用C語言直接讀入鍵盤字元

有方法,可以參考:
自己寫
字元檢測
函數,限定以想要輸入的字元范圍,然後依次匹配輸入字元項,合適,讀取;非法,丟棄,繼續讀取

Ⅷ 在C語言中如何實現用鍵盤輸入一個字元串,並列印出來

在C語言中實現用鍵盤輸入一個字元串,並列印出來的解決方法如下:

1、首先定義一個字元串數組,如你可以給字元串100個數組空間。如圖括弧內數字即為你定義的數組大小。

(8)鍵盤c語言擴展閱讀:

字元數組的輸出:

(1)用putchar()或printf()的『%c』格式符對數組進行字元賦值。例如,對於數組a[10]:用putchar()賦值:

for(i=0;i<10;i++)

a[i]=putchar();

用printf()賦值:

for(i=0;i<10;i++)

printf("%c",a[i]);

輸出結果為:

c program[2]

(2)用printf()的'%s'格式對數組賦值。還是對於數組a[10];

printf("%s",a);

輸出結果為:

c program

參考資料來源:

網路-char

網路-字元數組

Ⅸ c語言 如何從鍵盤輸入字元串

c語言從鍵盤輸入字元串的步驟如下:

1.首先我們新建一個dev C++的項目。

Ⅹ C語言鍵盤內容讀取

綜觀TC提供的鍵盤輸入函數,以bioskey函數為最合適選擇。

int bioskey(int cmd);
使用BIOS中斷0x16執行各種鍵盤操作。參數cmd確定實際得操作。
bioskey的返回值由cmd決定:
0:低8位非0,返回在隊列中等待的下一輸入鍵的ascii字元或鍵盤的下一次按鍵輸入的ascii字元。低8位為0,則高8位為擴展鍵盤碼。

1:測試是否有可讀的輸入鍵,為0,則沒有。Ctrl_break 返回0xffff(-1)。否則,返回下一個輸入鍵。鍵值還保存,供下次cmd=0時bioskey調用返回。

2:請求當前換檔鍵狀態。狀態值由下列值相或(or)得到:

位7 0x80 Insert ON
6 0x40 Caps ON
5 0x20 Numlock ON
4 0x10 Scroll Lock ON
3 0x08 ALT
2 0x04 CTRL
1 0x02 <- SHIFT
0 0x01 -> SHIFT

為了方便起見,我們首先定義一些常用功能鍵的鍵值。

#define ReturnKey 0x0d
#define ESC 0x1b
#define Back 0x08

#define LeftArrow 0x4b00
#define RightArrow 0x4d00
#define UpArrow 0x4800
#define DownArrow 0x5000

#define PageUp 0x4900
#define PageDown 0x5100
#define Home 0x4700
#define End 0x4f00

#define F1 0x3b00
#define F2 0x3c00
#define F3 0x3d00
#define F4 0x3e00
#define F5 0x3f00
#define F6 0x4000
#define F7 0x4100
#define F8 0x4200
#define F9 0x4300
#define F10 0x4400

int GetKey(void)
{
int tKey;
while(bioskey(1)==0)
;

tKey=bioskey(0);
if ((tKey & 0xff)!=0)
tKey=tKey & 0xff;
return tKey;

}

以上代碼,可基本完成常用程序鍵盤讀取操作。

但我們必須注意到,對於函數GetKey的定義中,bioskey函數的使用,我們只是對cmd=0,1的情況進行了處理,而對於cmd=2,也即換檔鍵狀態沒有進行處理,因而諸如ctrl-home等等GetKey不能進行相應的接收,如果確實需要,須繼續擴充GetKey函數。

熱點內容
nsftp速度 發布:2025-02-07 10:30:58 瀏覽:430
存儲過程ifor 發布:2025-02-07 10:25:28 瀏覽:432
命令行執行oracle腳本文件命令行 發布:2025-02-07 10:14:49 瀏覽:95
ibook安卓怎麼下 發布:2025-02-07 10:12:13 瀏覽:692
銀行卡沒有密碼怎麼辦啊 發布:2025-02-07 10:08:13 瀏覽:30
游戲庫源碼 發布:2025-02-07 09:49:15 瀏覽:53
享宇錢包上傳不了照片 發布:2025-02-07 09:48:32 瀏覽:632
模擬器怎麼開安卓版本 發布:2025-02-07 09:42:35 瀏覽:771
c程序設計語言源碼 發布:2025-02-07 09:22:41 瀏覽:624
資料庫域的概念 發布:2025-02-07 09:22:40 瀏覽:640