如何使在终端上输入的字符立即可供程序访问(无需等待用户按“Enter”键)?

问题描述 投票:0回答:1

我正在编写一个 C 程序,当我在 Gnome 终端上运行该程序时,我希望我在终端上输入的每个字符都可以立即作为标准输入被我的程序访问。默认情况下此功能不可用;要使程序可以读取输入,用户必须按“Enter”键提交输入。我希望这些输入立即可用,而不需要用户按“Enter”键。

这种行为在一些标准实用工具(如

man
页面)中是可见的。假设您运行命令
man fopen
,它会打开
fopen()
的文档,当您单击字符“q”时,它将立即关闭此页面。

c terminal buffer stdin termios
1个回答
0
投票
看看

termios.h

。通过提供的功能,您可以将终端配置为在按下每个字符时立即“给出”您。您需要自己缓冲输入,但这应该没问题。请注意,退格字符会删除缓冲区中的最后一个字符,并且箭头键会产生“无意义”。你需要照顾这些。

© www.soinside.com 2019 - 2024. All rights reserved.