gpt4 book ai didi

r - 检测单次击键

转载 作者:行者123 更新时间:2023-12-04 00:48:15 24 4
gpt4 key购买 nike

有几次我想检测 R 中的单次击键,但除了 readline() 之外没有找到其他任何东西。或类似。

一个例子是进行交互式绘图或数据浏览,并且能够使用箭头键更改参数值并自动更新绘图。当然我可以用 readline()然后让用户输入“u”而不是向上箭头,但我觉得它不是很优雅。

可以用 system() 来完成吗?命令以某种方式读取标准输入?

编辑:我现在在其他地方被告知 stdin 在做任何事情之前也会等待输入笔画,并且立即捕捉击键是系统特定的并且很难完成。如果有人知道怎么做 Ubuntu 10.10 或我很高兴知道的任何其他 Linux/unix 系统。

最佳答案

非常依赖操作系统的解决方案。首先是 中的一些 C 代码getkey3.c :

#include <stdio.h>
#include <termios.h>
#include <unistd.h>

void mygetch ( int *ch )
{
struct termios oldt, newt;

tcgetattr ( STDIN_FILENO, &oldt );
newt = oldt;
newt.c_lflag &= ~( ICANON | ECHO );
tcsetattr ( STDIN_FILENO, TCSANOW, &newt );
*ch = getchar();
tcsetattr ( STDIN_FILENO, TCSANOW, &oldt );
return;
}

使用 为 R 编译R CMD SHLIB getkey3.c

产生 getkey3.so .开始 R。
 > dyn.load("getkey3.so")
> .C("mygetch",as.integer(0))

然后按下一个键,它应该返回一个列表,其中第一个元素为该键的 ASCII 码的整数值。如果需要,将其存储在 R 变量中。

在 Ubuntu 上为我工作,对于任何其他操作系统,您都可以自己使用。

巴里

关于r - 检测单次击键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6662646/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com