linux 向上方向键功能

2017-06-15 22:32:57 aLiegjln 阅读数 2562

当我们做一个程序比如游戏时需要从键盘读入方向键,并且最好读入后不需要按回车且不要显示。下面我们在WIN和LINUX下分别一一实现;

  • 读入方向键;
    在win下,方向键由两个字节组成,分别为:’\244’和
    ‘\72’ up
    ‘\80’ down
    ‘\75’ left
    ‘\77’ right
    所以我们可以读两次来确认一个方向键
char a;
a=getchar();
if(a=='\244')
{
    a=getchar();
    if(a=='\72')
        printf("上\n");
    if(a=='\80')
        printf("下\n");
    if(a=='\75')
        printf("左\n");
    if(a=='\77')
        printf("右\n");
}

而在Linux下,方向键由三个字节组成,分别为:’\033’和’[‘和
‘A’ up
‘B’ down
‘C’ left
‘D’ right
相同的我们可以读三次次来确认一个方向键

char a;
a=getchar();
if(a=='\033')
{
    a=getchar();
    if(a=='[')
    {
        a=getchar();
        if(a=='A')
            printf("上\n");
        if(a=='B')
            printf("下\n");
        if(a=='D')
            printf("左\n");
        if(a=='C')
            printf("右\n");
    }
}
//当然我们也可以使用字符串数组
char a[4];
scanf("%s",a);
if(!strcpy(a,"\033[A"))
    printf("上");
    //。
    //。
    //。
    //。
  • 读入后不需要按回车且不回现
    在win下,我们可以使用conio.h库下的getch()函数读字符,就可以不回显,不用按回车;
    但是在Linux下我们没有conio.h库,也没有类似的函数,所以就得使用一些新操作(还有这种操作?)
    那就是设置Linux终端里设置非正规模式(没错就是有这种操作!)
struct termios stored_settings;
struct termios new_settings;
tcgetattr (0, &stored_settings);// 得到原来的终端属性
new_settings = stored_settings;
new_settings.c_lflag &= (~ICANON);//设置非正规模式,程序每次要从终端读取一个字符的
new_settings.c_cc[VTIME] = 0;//设置非正规模式下的读延时
new_settings.c_cc[VMIN] = 1;// 设置非正规模式下的最小字符数
tcsetattr (0, TCSANOW, &new_settings);// 设置新的终端属性
//然后就可以读取了
char a;
a=getchar();
tcsetattr (0, TCSANOW, &stored_settings);// 恢复默认设置
//读完记得恢复默认设置,不然。。。。。。
2018-12-21 10:30:49 yutingzhaomeng 阅读数 1464

MobarXterm提供了一种便捷的Windows连接Linux服务器的方式,在用的时候却会发现,有时候按方向键或者home、delete键之类的会出现很长一串数字,如'22222222222222222222222222222222222222222'这种形式。

 

解决方法:

将搜狗输入法切换为微软自带的输入法即可。

 

 

 

关于mobarxterm打开文件管理器

nautilus /home

即可

2017-06-07 19:20:34 cean1024 阅读数 2951

linux 读取键盘上下左右键小程序

月城雪兔 月城雪兔 2016-06-03 17:28:31
2008-07-16 16:20:00 ablo_zhou 阅读数 8154

ubuntu server 8.04, vim版本为 7.1.138,客户端使用pietty。vim 在插入模式下, 方向键被转为A B C D,退格键仅移动光标回退,并不删除。Del键有时会改变大小写。命令模式下,u键撤销只能回退一步。

后面在网上找到解决办法:编辑.vimrc, 增加set nocp, 一切正常。

2019-08-13 21:56:11 qq_25406563 阅读数 8432

关于历史命令的设置文件在每个用户根目录的bashrc文件

vi ~/.bashrc

如果以下命令结果是history off,去用户根目录的bashrc文件,添加一行set -o history

set -o | grep history

 

如果显示history on,继续排查

echo $HISTFILE
echo $HISTSIZE
echo $HISTFILESIZE

如果第一行结果是空,去用户根目录的bashrc文件,添加一行

HISTFILE=$HOME/.bash_history

如果二三行返回0,则 用户根目录的bashrc文件,添加

HISTFILESIZE=500
HISTSIZE=500

然后执行 source .bashrc

如果重启之后发现又无效了,进入root权限模式

vi /etc/profile

找到该文件中HISTFILESIZE和HISTSIZE,将其值改为大于0的数,如果没有,则添加HISTFILESIZE和HISTSIZE

然后执行source /etc/profile