我正在尝试向我的命令行程序中添加一个高级功能,当您按“tab”按钮时,它会提示您的意思(在文件上下文中,bash有这个功能,当您按tab时,它会在下一行打印匹配的文件名)。
下面是我所拥有的一小部分。我已将“\n”替换为ascii for制表符(以查看是否有效),但我仍需要按enter键才能将数据定向到standard in。
如有任何帮助,我们将不胜感激。谢谢。
while (1){
c = getchar() ;
if (isspace(c)){
curLine[pos]='\0';
buffer[w_count] = curLine ;
++w_count;
pos=0;
curLine = calloc(10, sizeof(char));
if (c == '\n')
break;
}
curLine[pos]=c;
++pos;
}
}
最佳答案
使用gnureadline库并参考http://www.delorie.com/gnu/docs/readline/rlman_48.html处的readline库示例