|
Console Library 8.0.0
A header-only library that makes C++ simple
|
用于监视键盘键击情况的类。 More...
#include <kb.h>
Public Member Functions | |
| Keyboard () | |
| 构造函数,开始监视键盘键击。 | |
| ~Keyboard () | |
| 析构函数,结束对键盘键击的监视。 | |
| Keyboard (const Keyboard &)=delete | |
| 被删除的拷贝构造函数 | |
| Keyboard (Keyboard &&)=delete | |
| 被删除的移动构造函数 | |
| Keyboard & | operator= (const Keyboard &)=delete |
| 被删除的拷贝赋值 | |
| Keyboard & | operator= (Keyboard &&)=delete |
| 被删除的移动赋值 | |
| Key | get () |
| 试图取得当前键击的按键。 | |
| Key | wait () |
| 等待直到键击并取得当前按键。 | |
| void | ignore (int n=-1) |
| 消耗留在缓冲区内的按键。 | |
Private Member Functions | |
| int | readRaw () |
| 读取一个原始按键值(非阻塞)。 | |
| int | readRawBlock () |
| 读取一个原始按键值(阻塞)。 | |
| Key | parse (int raw) |
| 将原始扫描码解析为 Key 枚举值。 | |
| Key | handleEscape () |
| 处理以 ESC (27) 开头的转义序列(主要针对 Linux 终端)。 | |
Private Attributes | |
| struct termios | oldTio |
| 原始终端I/O属性(用于析构时恢复规范模式与回显) | |
用于监视键盘键击情况的类。
|
inline |
构造函数,开始监视键盘键击。
|
inline |
析构函数,结束对键盘键击的监视。
|
delete |
被删除的拷贝构造函数
|
delete |
被删除的移动构造函数
|
inlineprivate |
处理以 ESC (27) 开头的转义序列(主要针对 Linux 终端)。
在 Linux 终端下,方向键会发送 "\033[A"、"\033[B" 等三字节序列。 本函数通过非阻塞 poll 检查后续输入,若在 5ms 内读到 "[A"-"[D]" 则转为方向键,否则视为普通 Esc 键。
|
inline |
消耗留在缓冲区内的按键。
| n | 消耗的数量,负数为所有,默认为 -1。 |
|
inlineprivate |
|
inlineprivate |
读取一个原始按键值(非阻塞)。
Windows 平台使用 _kbhit() 和 _getch(); Linux 平台使用 poll() 和 read()。
|
inlineprivate |
读取一个原始按键值(阻塞)。
Windows 平台直接调用 _getch(); Linux 平台循环调用 read() 直到成功读取一个字节。
|
private |
原始终端I/O属性(用于析构时恢复规范模式与回显)
Linux/Unix: