gpt4 book ai didi

c - 如何接受 Tab 作为 STDIN 的输入以自动填充文本

转载 作者:行者123 更新时间:2023-11-30 15:52:58 25 4
gpt4 key购买 nike

如何使用 C 在 STDIN 中按下 Tab 键一段时间后自动填充文本?

输入看起来像,

C:\>autofil.exe Hello
C:\>autofil.exe Hello. ( When I enter a period, it should autofil Hello after the period)
C:\>autofil.exe Hello.World *World is autofilled when period was entered.

第二个要求是我是否在

C:\>autofil.exe Hello.World  (And when i press Tab key, `World` should print with other suggestions, as `Friend`, and if I press Tab again, print `Matt`, and scroll so on when tab is pressed... )

嗯,这就是我的要求。制表符完成以自动填充文本。另外,想知道如何从 STDIN 读取 Tab 键。

谢谢!

最佳答案

您可以使用Readline GNU library For Windows ,非常容易使用,相反就是使用 PDcurses/Ncurses (几乎相同)并手动完成(处理控制台行为等)。

如果您使用 readline,完成自动完成就像执行以下操作一样简单:

rl_bind_key('\t', rl_complete);
char *input = readline("C:\>");

如果您使用 Ncurses/PDcurses,您将需要做更多的工作:)

  • 首先保存实际的控制台参数。
  • 然后使用 noecho() 设置输入的回显。
  • 您必须处理输入并解析调用程序的参数。
  • 此外,您还必须在目录(当前目录和 PATH 变量中的目录)中搜索与当前输入匹配的内容。

在结束程序之前再次设置保存的控制台参数。

Ncurses How-To是一本简单明了的指南。

Posix curses definition包含函数和关键定义。

关于c - 如何接受 Tab 作为 STDIN 的输入以自动填充文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13971298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com