Очень зависящее от ОС решение. Сначала немного кода 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 . Старт Р.
> dyn.load("getkey3.so")
> .C("mygetch",as.integer(0))
затем нажмите клавишу, она должна вернуть список с первым элементом в качестве целочисленного значения кода ASCII этой клавиши. Сохраните его в переменной R, если хотите.
У меня работает в Ubuntu, вы самостоятельно работаете с другими операционными системами.
Barry