我正在使用read()系统调用从标准输入读取数据,但有一件事情让我困扰。我不能使用箭头键......我真正想做的是使用箭头键在输入的文本中来回移动,但我认为这并不容易......所以,我至少要做的是,就是无视他们。如何忽略C中从标准输入读取的箭头键?
现在,按任意箭头键会产生奇怪的输出,我想阻止任何东西写入标准输出(因此从read()系统调用中的标准输入读取)。
这很容易实现或者不是那么容易吗?
我正在使用read()系统调用从标准输入读取数据,但有一件事情让我困扰。我不能使用箭头键......我真正想做的是使用箭头键在输入的文本中来回移动,但我认为这并不容易......所以,我至少要做的是,就是无视他们。如何忽略C中从标准输入读取的箭头键?
现在,按任意箭头键会产生奇怪的输出,我想阻止任何东西写入标准输出(因此从read()系统调用中的标准输入读取)。
这很容易实现或者不是那么容易吗?
为了按照理想的方式解释箭头键(即来回移动和编辑输入),通常需要使用库。对于Linux,标准是GNU Readline。希望别人能说出你通常用于Windows CLI应用程序的东西。
答案最终取决于钥匙从哪里来。我在Cygwin下运行这个程序:
int main(void)
{
int c=0;
while(c != 'X') {
c = getchar();
printf("\nc=%d", c);
}
}
每次光标键走来,我看到逃生(27),支架,加上另一个字符。所以,如果你得到这样的结果,每次看到一个27就可以跳过3个键。你也可以看着它们并利用它们!如上所述,YMMV,尤其是美国证券交易所,以及您所称的实际获利功能。
这可能是我需要的唯一答案大声笑... – 2009-05-22 15:49:37