我有这个程序,C
它读取这样的输入:
cod1 = getch ();
if (kbhit())
cod2 = getch ();
我可以阅读每个Ctrl+Char可能的序列,除了Ctrl+ C,它关闭程序 - 没关系,而Ctrl+ S,简单的不是捕捉。但我想让Ctrl+S成为我程序中的保存功能;我怎么能那样做?此外,是否可以读取Alt+Char字符?因为它将它作为常规字符读取,例如,Alt+A使用与 . 相同的代码读取A。
您的问题是输入可能会被终端仿真器吃掉。
例如Alt+<Whatever>
,通常为菜单快捷方式保留(例如Alt+F
打开File
菜单)。按住后通常会突出显示匹配的字符Alt
(F
get 中的下划线File
)。
Ctrl+S
保留用于Stops all output on screen (XOFF)
(您的终端仿真器再次这样做)。
至于Alt+<...>
在命令行应用程序中用作快捷方式。就我而言,持有Alt
不会影响收到的字符,它只是设置难以在控制台中访问的标志。即使在 GUI 应用程序中(在 Windows 中),它也非常棘手,您必须使用类似功能GetAsyncState()
来检查是否按下了 alt。