我正在尝试向我的命令行程序中添加一个高级功能,当您按“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库示例

10-08 06:16