使用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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)