linux运行getch吗,怎么样在linux下,实现getch函数功能
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函数功能!
linux运行getch吗,怎么样在linux下,实现getch函数功能相关推荐
- vs项目移植到linux运行,VS2008项目移植到Linux
不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefi ...
- corssover linux运行无效,使用 CrossOver 在 Linux运行 Windows 软件(金测OK)
使用 CrossOver 在 Linux运行 Windows 软件 即便是最忠实的 Linux 用户,有时候也需要运行一下 Windows 软件.有的用户为此保留了一台旧的 Windows PC,有 ...
- linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...
很多刚接触Linux的人都有四大疑问:使用Linux非常困难.在Linux中,您必须使用命令行.Linux很老又丑陋.Linux无法运行计算机游戏,本文为您解析,打消您对Linux的误解. 前言 对于 ...
- linux运行不了.sh文件,linux下不能执行/bin/sh脚本的原因:command not found
Linux下执行.sh脚本错误:bin/sh^M: bad interpreter: No such file or directory 原因是.sh脚本在windows系统下用记事本文件编写的.不同 ...
- lwip协议栈在linux运行,LwIP协议栈在uCOS II下的实现
1.概述: LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件.OS.编译器相关的部份独立出来,放在ucosii&LwIPsource etlwiparch目录下.因此LwIP在 ...
- linux运行出现断错误,在linux下代码运行出现段错误,求大神
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...
- linux 运行asf云挂卡,Linux下使用ASF工具 Steam 挂卡的配置使用
简介 既然你都花钱买了游戏,为什么还要花时间玩呢?这款工具就可以不用下载游戏,自动挂卡,是Steam回血渠道之一.(慈善包) 一.安装 .Net Core Debian 8 : apt-get upd ...
- linux运行dock打包的镜像,Linux部署之Docker方式部署项目
Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...
- linux 运行java工程师_java工程师linux命令,这篇文章就够了
精彩内容推荐 shell简介 1.1 shell家族 shell:命令解释器,根据输入的命令执行相应命令. 察看当前系统下有哪些shell: cat /etc/shells 察看当前系统正在使用的sh ...
- linux运行o文件是什么,Linux的.a、.so和.o文件
在说明Linux的.a..so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系 lib是和dll对应的.lib是静 ...
最新文章
- AGGCN | 基于图神经网络的关系抽取模型
- 容器与微服务从技术到艺术 你需要这场论坛
- 红帽赞助的Linux发行版Fedora 33刚刚发布
- JavaWeb:JDBC之数据库连接池
- RStudio(You‘re using a non-UTF8 locale, therefore only ASCII characters will work)
- docker 安装部署nacos
- BMC之ipmitool 命令收集
- 括号匹配算法Java实现
- JavaWeb:Redis
- Android 输出word文件中插入图片
- Unity3D帧动画,图片的切换实现动画效果
- 对接熊迈SDK工作记录之集成准备
- aquarius数据库建模配置详解
- Android群英传笔记-Android系统安全与安全机制
- Android FaceBook登录 分享获取HashKey(密钥散列)的简单方法
- 注册交管12123服务器异常,交管12123提示服务异常怎么解决
- OSPF基础,浅显易懂
- 读《穷爸爸 富爸爸》
- 微信公众号文章中如何添加附件?
- python 决策与控制
热门文章
- 操作系统实验报告-多线程编程解决进程间同步和互斥问题
- Winxp系统文件夹完全解析
- ALOS 12.5米精度DEM数据下载与处理
- 学弟学妹看我文章顺利毕业,基于HTML+Javascript五子棋人机博弈系统设计与实现《记得收藏》
- linux系统VNC安装包下载,CentOS 7 安装VNC 和 KVM
- Davids阅读笔记:《Redis设计与实现》
- Excel 2016 对数据做线性回归分析步骤
- 深入浅出Python机器学习3——K最近邻算法
- 网络工程制图论文计算机,工程制图论文.doc
- 测试游戏帧率电脑温度的软件,游戏中显示帧数和温度方法_游戏画面中实时显示FPS帧数温度技巧...