Input 如何制作具有箭头键功能的交互式promp?

Input 如何制作具有箭头键功能的交互式promp?,input,keyboard,command-prompt,ncurses,read-eval-print-loop,Input,Keyboard,Command Prompt,Ncurses,Read Eval Print Loop,我正在做一种翻译语言。我使用一个交互式提示,输入要计算的表达式(REPL)。我想知道,如何实现标准的提示行为?比如按向上和向下箭头键来浏览命令历史,按向左和向右箭头键来移动文本光标,而不是打印^[[D^[[C^[[A^[[B]代码。我只是不知道如何捕捉它们,或者一般情况下捕捉任何控制字符 我在Linux上。我是否需要使用ncurses或一些外部库,或者可以使用内置函数来完成?这与我的语言无关,但它让我疯狂地使用这样的提示符,没有导航。这使得测试更加困难。下面是一个示例C程序,让您可以使用(必须使

我正在做一种翻译语言。我使用一个交互式提示,输入要计算的表达式(REPL)。我想知道,如何实现标准的提示行为?比如按向上和向下箭头键来浏览命令历史,按向左和向右箭头键来移动文本光标,而不是打印^[[D^[[C^[[A^[[B]代码。我只是不知道如何捕捉它们,或者一般情况下捕捉任何控制字符


我在Linux上。我是否需要使用ncurses或一些外部库,或者可以使用内置函数来完成?这与我的语言无关,但它让我疯狂地使用这样的提示符,没有导航。这使得测试更加困难。

下面是一个示例C程序,让您可以使用(必须使用
-lncurses-lreadline
编译):

#包括
#包括
#包括
#包括
内部主(空){
char*input=readline($);
printf(“您键入了“%s”!\n”,输入);
返回0;
}
基本上,它模仿元键(如home/end和Directive arrow键)的命令行行为,但这一切都取决于您是否正确配置了inputrc