新手求助:C语言按下某键后开始执行代码怎么写

新手求助:C语言按下某键后开始执行代码怎么写,第1张

使用getch()函数

getch作用是等待键盘按键,并且返回按键的键值。

比如ESC的键值为27,我们可以写程序为

#include <stdioh>

int main()

{

while(getch()!=27);

printf("OK!");

}

在你的基础上改的

#include<stdioh>

#include<stdlibh>

#define LISTSIZE 100

#define ADD 10

typedef struct {

int elem;

int length;

int listsize;

}List;//定义线性表的结构体

void SqList(List &L)

{

//int i;//C++中C程序的变量定义放在开始

Lelem=(int )malloc(LISTSIZEsizeof(int));

if(!Lelem) exit(0);

Llistsize=LISTSIZE;

//printf("请输入线性表长度:");

//scanf("%d",&Llength);

//printf("为线性表赋值:");

//for(i=0;i<=Llength-1;i++)

//scanf("%5d",&Lelem[i]);

Llength =0;//如果是初始化,那么长度就是0

}//初始化线性表

int InsertSq(List &L,int i,int e)

{

int p=NULL, q=NULL;//所有变量的定义都必须置前

if(i<0||i>Llength+1) return 0;

if(Llength>=Llistsize)

{

int newbase;

newbase=(int )realloc(Lelem,(Llistsize+ADD)sizeof(int));

if(!newbase) exit(0);

Lelem=newbase;

Llistsize+=ADD;

}

q=&Lelem[i-1];

for(p=&Lelem[Llength-1];p>=q;--p)

(p+1)=p;

q=e;

Llength++;

return 1;

}//在线性表的第i个元素之前插入元素e

void PrintList(List L)

{

printf("顺序表中的元素:\n");

for(int k=0;k<=Llength-1;k++)

printf("%5d",Lelem[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);

}

keyflag应该是判断某个按键按了几次,不安的时候为0

if(KeyFlag == 0)

{

}

按一次时执行

else if(KeyFlag == 1)

{

if(BUTTON_add == 0 && KeyLock ==0)

{

}

if(BUTTON_reduce == 0 && KeyLock ==0)

{

}

按二次时执行

else if(KeyFlag == 2){

if(BUTTON_add == 0 && KeyLock ==0)

{

}

if(BUTTON_reduce == 0 && KeyLock ==0)

{

}

一楼正解,主要按键扩展标志是用来节省资源的,用最少的按键实现最多的功能!

在C代码中可设置如下自编的intokey(  )函数,用以接收方向键值。库函数kbhit( )是检测是否有按键被按下,库函数getch(  )是读取键盘按键值的,不需按回车,也不回显。dir是代表方向的变量,根据不同的方向键值,让dir取1到4这四个不同的值。其它的程序段就可根据dir的值让东西朝某个方向移动。方向键按下后会产生2个值,第一个是224,另一个分别为上下左右的72、80、75、77,因此要读取2次值来判断。要包含#include<conioh>

void intokey(  )

{ int  flag;

  if ( kbhit(  ) )   //判断有键按下时才执行下面的 *** 作

   { flag = getch(  );   //用flag来获取键值

    if (flag==224) flag = getch(  );  //值为224时表示按下了方向键,要再次获取才行

   if (flag==72 && dir != 2)  dir = 1; //方向键为“上”且原方向不为下时,让dir=1

if (flag==80 && dir != 1) dir = 2; //方向键为“下”且原方向不为上时,让dir=2

if (flag==75 && dir != 4)  dir = 3; //方向键为“左”且原方向不为右时,让dir=3

if (flag==77 && dir != 3)  dir = 4; //方向键为“右”且原方向不为左时,让dir=4

  }

}

注:这个函数来源于某些“贪吃蛇”的代码,略有修改,足可获取方向键值。其中的1、2、

3、4分别对应着上下左右。

以上就是关于新手求助:C语言按下某键后开始执行代码怎么写全部的内容,包括:新手求助:C语言按下某键后开始执行代码怎么写、c语言怎样实现键盘 *** 作、关于单片机温度控制系统C语言程序中的按键设置程序,请求详细的介绍下按键的输入过程。while(1) { if(KeyFl等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9680210.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存