用C自动完成目录名
我有一个C代码,它提示用户输入目录名列表,它只使用普通的scanf()来接收输入并继续。现在我想为目录名提供自动完成功能(就像bash一样)。假设用户输入/home/a并按TAB键-它显示以“a”开头的可用用户目录列表。如何实现这一点用C自动完成目录名,c,linux,autocomplete,C,Linux,Autocomplete,我有一个C代码,它提示用户输入目录名列表,它只使用普通的scanf()来接收输入并继续。现在我想为目录名提供自动完成功能(就像bash一样)。假设用户输入/home/a并按TAB键-它显示以“a”开头的可用用户目录列表。如何实现这一点 scanf不适用于任何类型的自动完成编辑,甚至不适用于超出内核烹调模式终端驱动程序提供的基本级别(基本上只是退格)的交互式编辑。如果您想进行更高级的交互式输入,您需要更改终端模式,以便获得每个关键事件并自己处理它们,或者您可以使用像readline这样的库来为您执
scanf
不适用于任何类型的自动完成编辑,甚至不适用于超出内核烹调模式终端驱动程序提供的基本级别(基本上只是退格)的交互式编辑。如果您想进行更高级的交互式输入,您需要更改终端模式,以便获得每个关键事件并自己处理它们,或者您可以使用像readline
这样的库来为您执行此操作。您使用scanf
进行用户输入?伙计,你离这样的工作还差得很远。@joachim pileborg,我总是在发布之前尝试一些东西,我的firefox最近关闭的标签历史显示为“”和/rlman_2.html#SEC36。刚刚发布的查询假设有人有更好的教程或github。顺便说一下,请参阅库,它内置了实际的制表符完成部分。你只要提供名单就行了。最后一部分请参见和。@melpomene,hihi:)是的,scanf到目前为止帮助了这段简单的代码,现在希望对其进行一些改进;请注意,它的许可证是GPL,而不是LGPL。因此,如果他发行原始海报,他将不得不将自己的代码作为免费的GPL-ed软件发布。我不会称之为神奇的库。它有很多令人讨厌的问题,比如全局状态和在故障条件下无法保持健壮性。但它很受欢迎,也很容易使用。我相信,如果许可证是一个问题,有一些非版权保留的替代方案也可以做大致相同的事情,但我不确定它们在其他方面的比较。