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函数功能相关推荐

  1. vs项目移植到linux运行,VS2008项目移植到Linux

    不少人都遇到过这种情况:在Windows下用Visual Studio工具开发的程序需要移植到Linux系统中,做成Linux版本的,但程序比较大,在Linux上又离不开Make,手动编写Makefi ...

  2. corssover linux运行无效,使用 CrossOver 在 Linux运行 Windows 软件(金测OK)

    使用 CrossOver 在 Linux运行 Windows 软件 即便是最忠实的 Linux 用户,有时候也需要运行一下 Windows  软件.有的用户为此保留了一台旧的 Windows PC,有 ...

  3. linux运行好麻烦,解析用Linux非常困难、必须用命令行、很老又丑陋及无法运行游戏...

    很多刚接触Linux的人都有四大疑问:使用Linux非常困难.在Linux中,您必须使用命令行.Linux很老又丑陋.Linux无法运行计算机游戏,本文为您解析,打消您对Linux的误解. 前言 对于 ...

  4. linux运行不了.sh文件,linux下不能执行/bin/sh脚本的原因:command not found

    Linux下执行.sh脚本错误:bin/sh^M: bad interpreter: No such file or directory 原因是.sh脚本在windows系统下用记事本文件编写的.不同 ...

  5. lwip协议栈在linux运行,LwIP协议栈在uCOS II下的实现

    1.概述: LwIP协议栈在设计时就考虑到了将来的移植问题,因此把所有与硬件.OS.编译器相关的部份独立出来,放在ucosii&LwIPsource etlwiparch目录下.因此LwIP在 ...

  6. linux运行出现断错误,在linux下代码运行出现段错误,求大神

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include #include #include #define PATH1 "/proc/meminf ...

  7. linux 运行asf云挂卡,Linux下使用ASF工具 Steam 挂卡的配置使用

    简介 既然你都花钱买了游戏,为什么还要花时间玩呢?这款工具就可以不用下载游戏,自动挂卡,是Steam回血渠道之一.(慈善包) 一.安装 .Net Core Debian 8 : apt-get upd ...

  8. linux运行dock打包的镜像,Linux部署之Docker方式部署项目

    Linux部署之Docker方式部署项目 1. 使用Docker对前端vue项目进行部署 1.1 环境准备 服务器或者虚拟机上先安装好Nginx和相关配置 docker pull nginx 拉去最新 ...

  9. linux 运行java工程师_java工程师linux命令,这篇文章就够了

    精彩内容推荐 shell简介 1.1 shell家族 shell:命令解释器,根据输入的命令执行相应命令. 察看当前系统下有哪些shell: cat /etc/shells 察看当前系统正在使用的sh ...

  10. linux运行o文件是什么,Linux的.a、.so和.o文件

    在说明Linux的.a..so和.o文件关系之前,先来看看windows下obj,lib,dll,exe的关系 windows下obj,lib,dll,exe的关系 lib是和dll对应的.lib是静 ...

最新文章

  1. AGGCN | 基于图神经网络的关系抽取模型
  2. 容器与微服务从技术到艺术 你需要这场论坛
  3. 红帽赞助的Linux发行版Fedora 33刚刚发布
  4. JavaWeb:JDBC之数据库连接池
  5. RStudio(You‘re using a non-UTF8 locale, therefore only ASCII characters will work)
  6. docker 安装部署nacos
  7. BMC之ipmitool 命令收集
  8. 括号匹配算法Java实现
  9. JavaWeb:Redis
  10. Android 输出word文件中插入图片
  11. Unity3D帧动画,图片的切换实现动画效果
  12. 对接熊迈SDK工作记录之集成准备
  13. aquarius数据库建模配置详解
  14. Android群英传笔记-Android系统安全与安全机制
  15. Android FaceBook登录 分享获取HashKey(密钥散列)的简单方法
  16. 注册交管12123服务器异常,交管12123提示服务异常怎么解决
  17. OSPF基础,浅显易懂
  18. 读《穷爸爸 富爸爸》
  19. 微信公众号文章中如何添加附件?
  20. python 决策与控制

热门文章

  1. 操作系统实验报告-多线程编程解决进程间同步和互斥问题
  2. Winxp系统文件夹完全解析
  3. ALOS 12.5米精度DEM数据下载与处理
  4. 学弟学妹看我文章顺利毕业,基于HTML+Javascript五子棋人机博弈系统设计与实现《记得收藏》
  5. linux系统VNC安装包下载,CentOS 7 安装VNC 和 KVM
  6. Davids阅读笔记:《Redis设计与实现》
  7. Excel 2016 对数据做线性回归分析步骤
  8. 深入浅出Python机器学习3——K最近邻算法
  9. 网络工程制图论文计算机,工程制图论文.doc
  10. 测试游戏帧率电脑温度的软件,游戏中显示帧数和温度方法_游戏画面中实时显示FPS帧数温度技巧...