1.最简单的例子如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
//保存到readline.c里 #include <stdio.h> #include <stdlib.h> #include <readline/readline.h> #include <readline/history.h> int main(int argc, char **argv) { char *ch; ch = readline("Input: "); printf("%s\n", ch); free(ch); return 0; } |
需要使用到readline库,还有很多功能自行挖掘。
原来用C语言时一直想用交互操作的功能而不得,也没查找到相关方法,网上说的都不是想要的,仅仅是读取输入的是哪个方向键,根本不能交互操作。
后来在用Python的时候发现了有import readline这个东西,又Python有些就是C语言封装好的库,反推回去C语言应该是有这个东西的,按着readline关键字的方向去查找果然被我找到了。
2.编译
需要指明链接的库,不然会报错
1 2 3 |
gcc readline.c -lreadline |
3.运行
1 2 3 |
./a.out |
之后可以输入字符,或者用方向键移动光标到特定字符进行修改、删除等操作,不过不能用上下键切换历史输入,这个应该是要自己用库函数编写。
二更:
找到了,是因为没有将输入的字符串加入历史中,可以在执行readline后调用add_hisotry(ch),测试用例如下。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <stdio.h> #include <stdlib.h> #include <readline/readline.h> #include <readline/history.h> int main(int argc, char **argv) { char *ch; while(1) { ch = readline("Input: "); printf("%s\n", ch); add_history(ch); if(*ch == 'q') break; } free(ch); return 0; } |