C-扫描所有字符输入,直到查看标签char



我想在命令行应用程序上自动完成a,但就像在bash中一样,您可以使用可以完成命令的选项卡键。但是getchar()似乎等到收到newline char才开始读取任何字符之前。

scanf似乎以相同的方式工作。

有什么办法可以一次扫描一个字符,无论它们是空格还是控制字符?

我希望能够通过char读取char作为输入构建命令,然后一旦收到tab char,我将尝试查找如何在我的应用程序中完成和打印完整命令。

不要重新发明轮子。

使用其他项目用来构建命令行:为您实现该作业的库。

许多CLI提示都取决于GNU读取线,如果有点混乱,我认为这很好。另外,这是GPL,因此取决于您是否喜欢。

我会看着亚麻。这很轻巧,如果您决定自己确实想自己实现用户界面,而不是包含一个或两个文件,请执行此操作,但请查看似乎是相当简洁的参考实现。警告:到目前为止,我自己还没有使用过。但是,正如他们的示例中可以看出的那样,API很简单。

流行的替代方案是libedit/editline。

您需要gnu readline库。每当用户按键(在您的情况下,'t')时,请使用rl_bind_key()函数添加文件名完成处理功能。

如果您尝试滚动自己的阅读线样式功能,您将受到伤害的世界。

(如果您在Windows上。)

最新更新