【发布时间】:2015-09-13 10:56:43
【问题描述】:
我想知道如何用 C 语言实现一个程序,该程序可以自动完成您在命令行中输入的命令或文本。例如,假设您的程序正在提示用户输入文件名。大多数人会使用scanf() 或者这样做。然后在命令行用户会提示please input the file name:_。
假设在同一目录中有一个shakespeare.txt。现在我输入了shakes,然后我希望计算机为我自动完成shakespeare.txt,就像大多数程序在用户点击Tab 时所做的那样。如何实现?
编辑:为了更清楚,再举个例子:
如果你在命令行中使用grep,比如grep -i "shakespeare" shakespeare.txt,在你自己完成shakespeare.txt之前,如果你只是使用Tab,就会出现一些候选人。
当我尝试在使用scanf() 之类的功能时提示用户输入时,如何实现我的程序以使其拥有此实用程序?
【问题讨论】:
-
你能不能简单地捕获用户的
tab并将当前输入字符串与当前工作目录中的内容以及可能的一组硬编码关键字进行比较? -
您是否对整个算法感兴趣,或者只是对如何在已经退出的方式上使用 tab 事件来自动完成某些事情感兴趣?
标签: c shell command-line autocomplete