linux运行getch吗,怎么样在linux下,实现getch函数功能

news/2024/11/27 4:28:07/

getch();接受一个任意键的输入,不用按回车就返回。该函数的返回值是所输入字符的ASCII码,且该函数的输入不会自动显示在屏幕上,需要putchar();函数输出显示。getch();函数常用于中途暂停程序方便调试和查看。

有没有办法本人用c语言封装一个在linux下的getch函数?

解决方案

100

看看这个!

[code=c/****************************************

文件名: getkey.h

版本: 1.0

此头文件包含函数:

int getch()

char *getkey()

可用于获取按键信息,具体返回值请自行

测试,编译需加参数 -lpthread

此头文件适用平台:

诺亚舟同步搜学王NP1500/I新春版

made by pengyao1207

注:C++不可用             2013年8月

****************************************/

#include 

#include 

#include 

#include 

#include 

#ifndef _PY_GETKER_H

#define _PY_GETKEY_H

int input;

pthread_t thread[1];

pthread_mutex_t mut;

char c[193]=””;

void *memset();

void *regetch()

{

int n = 0;

n = fgetc( stdin );

input += n;

pthread_exit(NULL);

}

int getch( void )

{

struct termios tm, tm_old;

int fd = STDIN_FILENO,c;

if(tcgetattr(fd, &tm) 

return -1;

tm_old = tm;

cfmakeraw(&tm);

if(tcsetattr(fd, TCSANOW, &tm) 

return -1;

unsigned int k;

int temp;

input = fgetc( stdin );

k = input;

if(tcsetattr(fd,TCSANOW,&tm_old)<0) return -1;

if(k > 32){

c = k;

}

else{

while(1)

{

memset(&thread,0,sizeof(thread));

if((temp = pthread_create(&thread[0],NULL,regetch,NULL))!=0)

printf(“用于获取按键输入的线程创建失败!\n”);

usleep(1000);

pthread_cancel(thread[0]);

pthread_join(thread[0],NULL);

if(k == input) {

c=input;

break;

}

else{

k = input;

c=c+k;

}

}

}

return c;

}

char *getkey(void)

{

int n,i;

char a;

c[0]=”””;

n=getch();

switch(n)

{

case 171:

return “UP”;

case 172:

return “DOWN”;

case 173:

return “RIGHT”;

case 174:

return “LEFT”;

case 27:

return “ESC”;

case 13:

return “OK”;

case 342:

return “AA”;

case 343:

return “BB”;

case 127:

return “DEL”;

case 32:

return “SPACE”;

case 39:

return c;

}

if(n>96)if(n<123)

{

a=”a”;

for(i=97;i

c[0]=a;

return c;

}

if(n>64)if(n<91)

{

a=”A”;

for(i=65;i

c[0]=a;

return c;

}

}

#endif][/code]

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明怎么样在linux下,实现getch函数功能!


http://www.ppmy.cn/news/525452.html

相关文章

调侃计算机专业的句子,调侃作业多的幽默句子 用于关于感动作业的幽默语句...

看来有情况啊 我&#xff1a;“媛媛&#xff0c;你姐夫他人呢&#xff1f;让他接电话。” 媛媛&#xff1a;“问我干嘛&#xff01;找他你打他电话呀&#xff01;我怎么知道他在哪&#xff01;” 我&#xff1a;“我特么打的就是他电话&#xff01;” 媛媛&#xff1a;“……”…

用计算机得英语造句,外语造句 - 用外语造句大全(10-500个例子) - 第 3 页

121.回过头来&#xff0c;猫妈妈对宝宝们说&#xff1a;“你们现在知道会门外语有多重要了吧。”。 122.学习外语的人都离不开电子辞典&#xff0c;在中国&#xff0c;诺亚舟、文曲星、好译通、卡西欧都是人们常常选的几个品牌。 123.在过去几十年里&#xff0c;人们对其在外语…

特步软件测试员工资,特步集团全面预算管理系统——管理员手册V1.1

《特步集团全面预算管理系统——管理员手册V1.1》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《特步集团全面预算管理系统——管理员手册V1.1(76页珍藏版)》请在人人文库网上搜索。 1、特步集团全面预算管理系统项目系统管理员手册特步(中国)全面预算管理系统项目部…

中国教育培训机构市场运营状况与投资咨询预测报告2022年版

中国教育培训机构市场运营状况与投资咨询预测报告2022年版 【报告编号】: 414543 【出版时间】: 2022年2月 【出版单位】: 中商经济研究网 第一章 中国教育培训机构行业发展综述 1.1 教育培训机构行业定综述 1.1.1 教育培训机构行业定义 &#xff08;1&#xff09;行…

DT|一文看完企业绩效管理系统产品(EPM)的前世今生

首先定义什么叫企业绩效管理&#xff08;EPM&#xff09;软件&#xff1a;虽然企业绩效管理&#xff08;enterprise performance management, 简称EPM&#xff09;或公司绩效管理&#xff08;corporate performance management, 简称CPM&#xff09;都是由Gartner定义或推广的&…

专业技术人员继续教育考试题

答案都是用红色标出来了&#xff0c;结果复制进来都没法保留颜色&#xff0c;只好整理成文档放我空间里&#xff0c;大家去下载吧&#xff0c;基本能保证考个75分不成问题&#xff01;也就是4道题能在这里找到3道原题。https://download.csdn.net/download/leva345/86240248 2…

出售,2012年世界末日诺亚舟船票,绝密

美国航空航天局&#xff08;NASA&#xff09;官方网站上特别对《2012》进行澄清&#xff0c;说明电影只是电影&#xff0c;不存在真实的成分。虽然新闻报道说的轻飘飘&#xff0c;但事实足以证明这部电影的真实感让人不得不相信2012的预言真实存在。虽然人类各个民族在历史上有…

中文在线诉诺亚舟侵权索赔84万余元

[url]http://www.sina.com.cn[/url] 2008年03月24日 09:58 新浪科技 新浪科技讯 3月24日上午消息&#xff0c;北京中文在线文化发展有限公司(下称“中文在线”)今日宣布&#xff0c;该公司已对深圳市致远诺亚舟互联网科技有限公司、创新诺亚舟电子(深圳)有限公司提起侵权诉讼&…